在我的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个结果集。
答案 0 :(得分: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