如果在MS SQL Server 2008存储过程中使用以下代码:
DECLARE @PROD_ID VARCHAR(20)
SELECT @PROD_ID = MYTABLE.PROD
FROM MYTABLE
WHERE MYTABLE.DEVID = @DEVCODE
DEVCODE不存在,PROD_ID包含什么?我试过打印它,但它会打印出似乎是空间的东西。但是,测试它的空间失败。此外,测试NULL失败。或者,我应该以不同的方式测试空白吗?
感谢阅读 BBZ
答案 0 :(得分:1)
@PROD_ID
不存在, @DEVCODE
应保持为空。
您是否正确使用
进行测试...@PROD_ID IS NULL...
而不是试图测试
...@PROD_ID = NULL...
哪个不正确?
答案 1 :(得分:1)
如果@DEVCODE id不存在,则@PROD_ID将保持为空。
您不能在SELECT @PROD_ID = ...语句中使用COALESCE或ISNULL,因为它根本不会返回任何记录。
但是,你可以这样做:
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