我有一个存储过程,我在其中检查表是否返回任何行。如果没有返回任何行,则只返回一个空/虚拟结果集。如果返回行,则返回相同的结果集。
这是程序
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条件返回。我做错了什么?