在我的SQL Server存储过程中,我有许多IF块。
IF @CurrentStatus IN (1, 4) AND @RoleID IN ('ADMN', 'PMGR', 'SMGR', 'DMGR', 'DESI', 'DERO')
BEGIN
-- SELECT query...
END
IF @CurrentStatus = 2 AND @RoleID IN('ADMN')
BEGIN
-- SELECT query...
END
还有更多IF
类似的块。如果由于IF
不满足的条件而没有执行任何查询时,将不会返回任何数据。如果没有其他数据返回,我有一个查询要作为默认值返回。如何检查存储过程结束时是否返回了任何数据?
我尝试检查是否已执行任何查询,IF @@ROWCOUNT = 0
但是当执行其中一个IF
块时,我将获得2个结果集。
如果我理解正确,您可以使用If / Else If / Else,像这样...
IF @CurrentStatus IN (1, 4) AND @RoleID IN ('ADMN', 'PMGR', 'SMGR', 'DMGR', 'DESI', 'DERO')
BEGIN
-- SELECT query...
END
Else IF @CurrentStatus = 2 AND @RoleID IN('ADMN')
BEGIN
-- SELECT query...
END
Else
BEGIN
-- Default query
END
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句