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

  • 本文关键字:Sql Else 常量 返回 子句 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 时,它会更新库存数量,产品变为未发布。如果库存数量高于 0,则上述案例将更新已发布字段以重新发布产品。

当我更新 ELSE 子句

时,在其他列上返回 0 值,但如果我删除 ELSE 子句,它无法插入空值。

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

您在第二条语句中缺少WHERE子句

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

还有一件事,发布列是什么数据类型?您正在使用"1" - 其 nchar 和 0 - int

最新更新