0
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,则上述案例更新已发布字段以重新发布产品。

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

如何返回上述代码,使其仅更新一行数据。

4

1 回答 1

0

你在第二个语句中缺少WHERE子句

UPDATE  Product 
SET Published = CASE WHEN CCCQTYINSTOCK > 0
    THEN 1 ELSE 0 END
where SKU=@newSTOCKCODE

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

于 2013-01-24T11:53:13.507 回答