我想将两列的数据复制到另一个包含许多列的表中,并且两个表上都有一个公共列。
这是我的表格:
我尝试使用此question
中的此UPDATE查询UPDATE table2 a,table1 b SET
a.col1 = b.col1,
a.col2 = b.col2,
a.col3 = a.col3 + b.col1,
a.col4 = a.col4 + b.col2
WHERE a.ID = b.ID
但它给出了
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'a'.
无论如何可以这样做吗? 对不起,如果我没有设法以一种很好的方式编写表格,但似乎stackoverflow没有创建表格。
答案 0 :(得分:2)
您的语法对于MySQL来说是正确的,但最好写成:
UPDATE table2 a join
table1 b
on a.ID = b.ID
SET a.col1 = b.col1,
a.col2 = b.col2,
a.col3 = a.col3 + b.col1,
a.col4 = a.col4 + b.col2;
对于SQL Server,语法为:
UPDATE a
SET col1 = b.col1,
col2 = b.col2,
col3 = a.col3 + b.col1,
col4 = a.col4 + b.col2
FROM table2 a join
table1 b
on a.ID = b.ID;
SQL Server中的错误可能出现在表后的别名或a
语句中的set
上。