Sql server 根据SQL Server中变量的值返回空结果集

Sql server 根据SQL Server中变量的值返回空结果集,sql-server,Sql Server,对于你们这些家伙来说,这是一个简单的问题,我相信 我有一个存储过程,它接受一个变量@iLevel。我想确保@iLevel始终低于5 如果大于等于5,我想立即返回一个空结果集 我有 IF @iLelel >= 5 RETURN ELSE BEGIN --all my good processing stuff 然而,这只是一无所获。我想返回一个空的结果集 如何在SQL Server中实现这一点 提前谢谢 编辑: 我正在SQL Server中运行存储过程,现在,如果在var低于5的

对于你们这些家伙来说,这是一个简单的问题,我相信

我有一个存储过程,它接受一个变量@iLevel。我想确保@iLevel始终低于5

如果大于等于5,我想立即返回一个空结果集

我有

IF @iLelel >= 5

RETURN 

ELSE

BEGIN

--all my good processing stuff
然而,这只是一无所获。我想返回一个空的结果集

如何在SQL Server中实现这一点

提前谢谢

编辑:

我正在SQL Server中运行存储过程,现在,如果在var低于5的情况下运行它,我会在messages窗口中看到结果。所有列名等。如果我在var为5或更多的情况下运行它,消息窗口只会显示“命令已成功完成”

我想我至少希望返回一个空的结果,而不仅仅是空的

可能是我错了。。。你能告诉我这对我有多新鲜吗


再次感谢

在返回之前说
选择“”
。或者,如果您有列列表,然后提到
选择“作为col1”,“作为col2,…”作为coln
@Murtaza,它不会产生一个空的结果集。我想问你为什么还要调用存储过程,因为你从调用应用程序中知道
@ilel
的值是>=5?你可以创建一个没有记录的临时表,从临时表中选择(当然是相同的列),然后从该临时表中选择。只需添加false“where”条件到您的最终选择,如“…和@iLevel<5”,您就完成了。
CREATE PROCEDURE usp_MyProc 
  @iLelel  INT 
AS 
BEGIN
  SET NOCOUNT ON;

    BEGIN TRY
              -- before you do anything do your test here 
                IF (@iLelel >= 5)
                 BEGIN
                    RAISERROR('Value out of range, greater than 5 blabla',16,1)
                 END
        -- any code here will only be executed if passed the above test              
          -- all of the good stuff here     

    END TRY 

    BEGIN CATCH
         -- Error handling here 
         -- Log error do what ever you want to do  

    END CATCH

END