Sql server SQL Server存储过程-如果没有数据,将向变量返回什么?

Sql server SQL Server存储过程-如果没有数据,将向变量返回什么?,sql-server,Sql Server,如果,请在MS SQL Server 2008存储过程中使用以下代码: DECLARE @PROD_ID VARCHAR(20) SELECT @PROD_ID = MYTABLE.PROD FROM MYTABLE WHERE MYTABLE.DEVID = @DEVCODE DEVCODE不存在,PROD_ID将包含什么?我试过打印它,但它打印的似乎是一个空间。然而,测试它的空间失败了。此外,NULL测试失败。或者,我应该以另一种方式测试是否为空 谢谢你

如果,请在MS SQL Server 2008存储过程中使用以下代码:

    DECLARE @PROD_ID VARCHAR(20)

    SELECT @PROD_ID = MYTABLE.PROD 
    FROM MYTABLE
    WHERE MYTABLE.DEVID = @DEVCODE
DEVCODE不存在,PROD_ID将包含什么?我试过打印它,但它打印的似乎是一个空间。然而,测试它的空间失败了。此外,NULL测试失败。或者,我应该以另一种方式测试是否为空

谢谢你的阅读
如果
@DEVCODE
不存在,BBz

@PROD\u ID
应保持为空

您是否正确地使用

...@PROD_ID IS NULL... 
而不是尝试测试

...@PROD_ID = NULL... 

哪个不正确?

如果@DEVCODE id不存在,那么@PROD\u id将保持为空

不能在SELECT@PROD\U ID=。。。语句,因为它根本不会返回任何记录

但是,您可以执行以下操作:

DECLARE @PROD_ID VARCHAR(20)

SELECT @PROD_ID = MYTABLE.PROD 
FROM MYTABLE
WHERE MYTABLE.DEVID = @DEVCODE

IF (@PROD_ID is null) BEGIN
  -- do something
END

太好了,谢谢。还有一件很容易忽略的事情:sNo我不是,我是在尝试使用“=”。非常感谢你的指点!