存储过程不基于IF条件返回数据

时间:2014-09-07 13:48:48

标签: stored-procedures sql-server-2012 conditional-statements

我有一个存储过程,我在其中检查表是否返回任何行。如果没有返回任何行,则只返回一个空/虚拟结果集。如果返回行,则返回相同的结果集。

这是程序

BEGIN

Declare @HAS_ROWS int
SELECT @HAS_ROWS(SELECT COUNT(*) AS HAS_ROWS FROM Table1)

    If(@HAS_ROWS <= 0)
        BEGIN
            SELECT TOP 1 NULL FROM Table1
            Return
        END
    Else
        BEGIN
            SELECT * FROM Table1
            Return
        END
END

运行此程序后,我得到以下结果

(No column name)
0

HAS_ROWS
NULL

Title
This is title of row1
This is title of row2

正如您所看到的,它返回了3个结果集,我希望它仅基于IF条件返回。我做错了什么?