我正在尝试确定产品表中是否已经存在产品。当我运行tsql的此位时,它应该返回1并退出proc,因为在产品表中不存在产品ID 7777,但它返回0。如果我在没有if语句的情况下运行它,只是执行select语句,它说@prodIDnull。我想知道为什么它不进入if语句,因为我正在检查它是否为空值。在此先感谢您的帮助。

 Declare  @ProdID int

 select @ProdID = dbo.productTbl.ProductID
 from dbo.ProductTbl
 inner join dbo.OrderTbl
 on dbo.ProductTbl.ProductID = dbo.OrderTbl.ProductID
 where dbo.OrderTbl.ProductID = 7777


 if(@ProdID = null)
 begin
 raiserror('The product does not exist',16,1)
 return 1
 end
 return 0

最佳答案

在SQL Server中,使用IS NULL而不是= null来检查空值。

if(@ProdID IS NULL)
begin
raiserror('The product does not exist',16,1)
return 1
end
return 0

关于sql - 检查列是否具有空值sql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22997655/

10-13 08:07