首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更新SQL中的多个列

更新SQL中的多个列
EN

Stack Overflow用户
提问于 2012-01-31 20:37:04
回答 12查看 672.5K关注 0票数 190

是否有一种方法可以像使用insert语句一样更新SQL server中的多个列?

类似于:

Update table1 set (a,b,c,d,e,f,g,h,i,j,k)=
(t2.a,t2.b,t2.c,t2.d,t2.e,t2.f,t2.g,t2.h,t2.i,t2.j,t2.k)
from table2 t2
where table1.id=table2.id

或者类似的东西,而不是像这样:

update table set a=t2.a,b=t2.b etc 

如果您有100+列,那么编写它可能会非常麻烦。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2012-01-31 20:39:51

“令人厌烦的方式”是标准SQL以及主流RDBMS是如何做到这一点的。

使用100+列,您很可能会遇到设计问题...此外,在客户端工具中也有一些缓解方法(例如生成UPDATE语句)或使用ORM

票数 98
EN

Stack Overflow用户

发布于 2012-01-31 20:40:11

试试这个:

UPDATE table1 
SET a = t2.a, b = t2.b, .......
FROM table2 t2
WHERE table1.id = t2.id

这应该可以在大多数SQL方言中工作,Oracle除外。

是的-这是大量的输入-这是SQL做这件事的方式。

票数 225
EN

Stack Overflow用户

发布于 2012-01-31 20:42:06

您的查询几乎是正确的。这方面的T-SQL是:

UPDATE  Table1
SET     Field1 = Table2.Field1,
        Field2 = Table2.Field2,
        other columns...
FROM    Table2
WHERE   Table1.ID = Table2.ID
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9079617

复制
相关文章

相似问题

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