当只有值保持不变时,如何在Sql Else子句中返回一个常量值

时间:2013-01-24 11:23:11

标签: tsql triggers

UPDATE  ConcordWholesales_new.dbo.Product 
SET CCCQTYINSTOCK=isnull(@newQTYINSTOCK,'')    
where SKU=@newSTOCKCODE   

UPDATE  Product 
SET Published = CASE WHEN CCCQTYINSTOCK=isnull(@newQTYINSTOCK,'') 
    THEN '1' ELSE 0 END

我有一个更新触发器,当其低于0时,产品变为未发布,更新库存数量。如果StockQuantity高于0,则上述案例更新已发布的feild以重新发布产品。

当我更新ELSE子句时,在其他列上返回0值,但是如果我删除了ELSE子句,则它不能插入空值。

如何返回上述代码,以便只更新一行数据。

1 个答案:

答案 0 :(得分:0)

你在第二个陈述

中缺少WHERE条款
UPDATE  Product 
SET Published = CASE WHEN CCCQTYINSTOCK > 0
    THEN 1 ELSE 0 END
where SKU=@newSTOCKCODE

还有一件事,什么数据类型是Published column? 你正在使用'1' - 它的nchar和0 - int