首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对单个语句进行两次更新

对单个语句进行两次更新
EN

Stack Overflow用户
提问于 2017-01-13 19:15:18
回答 3查看 73关注 0票数 1

我有两个在SQL server上运行的update语句,它们类似于

代码语言:javascript
复制
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'

是否有可能对一条语句进行两次更新?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-13 19:19:47

你可以这样组合:

代码语言:javascript
复制
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') 

没有什么好处,只是现在它将作为一个原子操作运行,并且不需要外部事务。

票数 8
EN

Stack Overflow用户

发布于 2017-01-13 19:25:05

代码语言:javascript
复制
     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') 
票数 1
EN

Stack Overflow用户

发布于 2017-01-13 19:20:46

代码语言:javascript
复制
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”)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41641870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档