是否有一种方法可以像使用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+列,那么编写它可能会非常麻烦。
发布于 2012-01-31 20:39:51
“令人厌烦的方式”是标准SQL以及主流RDBMS是如何做到这一点的。
使用100+列,您很可能会遇到设计问题...此外,在客户端工具中也有一些缓解方法(例如生成UPDATE语句)或使用ORM
发布于 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做这件事的方式。
发布于 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
https://stackoverflow.com/questions/9079617
复制相似问题