如何检查SQL Server中是否执行了任何IF块

时间:2014-12-11 23:31:56

标签: sql sql-server tsql

在我的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个结果集。

1 个答案:

答案 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