我有两个在SQL server上运行的update语句,它们类似于
UPDATE dbo.c_Account
SET Ct = Ct-1
Where
Acc = 'IT' OR Acc = 'gt'
UPDATE dbo.c_Account
SET Ct = Ct-3
Where
Acc = 'ABC'是否有可能对一条语句进行两次更新?
发布于 2017-01-13 19:19:47
你可以这样组合:
UPDATE t SET
Ct = Ct - CASE WHEN t.Acc IN ('IT','gt') THEN 1 ELSE 3 END
FROM dbo.c_Account t
WHERE t.Acc IN ('IT','gt','ABC') 没有什么好处,只是现在它将作为一个原子操作运行,并且不需要外部事务。
发布于 2017-01-13 19:25:05
UPDATE dbo.c_Account
SET Ct = case Acc when 'IT' then (Ct-1 )
when 'GT' then ct-1
when 'abc' then ct-3
else ct
end
WHERE t.Acc IN ('IT','gt','ABC') 发布于 2017-01-13 19:20:46
UPDATE dbo.c_Account
SET Ct = case
when (Acc = 'IT' OR Acc = 'gt') then Ct-1
When Acc = 'ABC' then Ct-3
Else ct
End以上将更新所有默认记录,不更改。您可以添加where状态,以只更新所需的状态,例如acc中的位置(“IT”、“gt”、“ABC”)
https://stackoverflow.com/questions/41641870
复制相似问题