T SQL - 空变量

Com*_*Guy 4 t-sql sql-server-2008

我有一个从 .aspx.cs 页面调用的存储过程。我有一个参数,在调用 sproc 时有时无法发送。因此,我正在执行以下操作:

 IF @variable is null
     BEGIN
         ...do this...
     END
 Else 
         ...do that...
Run Code Online (Sandbox Code Playgroud)

我的问题出在 IF 语句中。据我所知,当我使用以下任何一项时:

  • if @parameterVariable = null
  • if @parameterVariable = ''
  • if @parameterVariable <= 0

没发生什么事!?当我在 SSMS 中调试 sproc 时,我发现(即使参数为空(没有用户选择))光标会转到并运行 ELSE 语句中的代码。难道我做错了什么?

谢谢!

Cod*_*ess 5

使用可选参数:

 CREATE PROCEDURE uspTest
    @param1 varchar(50) = null,

AS
    BEGIN
        SELECT col1, col2
        FROM Table1
        WHERE
                ((@Param1 IS NULL) OR (col1 = @Param1)) 
    END
Run Code Online (Sandbox Code Playgroud)