是否有一种方法可以更新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多个列,写起来会很累人。


当前回答

这里有一个有效的方法:

UPDATE  `table_1`
INNER JOIN 
 `table_2` SET  col1= value, col2= val,col3= val,col4= val;

Value是table_2中的列

其他回答

Update table1 set (a,b,c) = (select x,y,x)语法就是使用的一个例子 行值构造函数,Oracle支持,MSSQL不支持。(连接项)

你的问题几乎正确。这方面的T-SQL是:

UPDATE  Table1
SET     Field1 = Table2.Field1,
        Field2 = Table2.Field2,
        other columns...
FROM    Table2
WHERE   Table1.ID = Table2.ID

我尝试了这种方式,它工作得很好:

UPDATE 
  Emp
SET 
  ID = 123, 
  Name = 'Peter' 
FROM 
  Table_Name

如果你需要多次重新输入,你可以像我这样做一次。 将列的名称放入excel表格中的行中(在每个列名的末尾写下(=),这在notepad++中很容易),在右侧制作一个列来复制和粘贴您的值,这将对应于每列的新条目。然后在它们的右边一个独立的栏中按设计的那样加上逗号

然后你将不得不复制你的值到中间列每次,然后只是粘贴然后运行

我不知道还有什么更简单的解决办法

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

http://www.w3schools.com/sql/sql_update.asp