您的查询将给出错误
Msg 8156, Level 16, State 1, Line 59The column 'AnotherKey' was specified multiple times for 'tmpTable'.
那是因为你正在使用
*的使用条款中,并
AnotherKey为双方的部分
table2和
table3。
指定所需的列。另外,因为
keycolumn在
on子句中使用,所以在其中没有外部联接也是没有用的。
MERGE table1USING (SELECt table3.keycolumn, table2.DataColumn1, table2.DataColumn2 FROM table2 INNER JOIN table3ON table2.anotherKey = table3.anotherKey WHERe table2.anotherKey = 'A1') tmpTableON table1.keyColumn = tmpTable.keyColumnWHEN MATCHED THEN UPDATE SET table1.DataColumn1 = tmpTable.DataColumn1 ,table1.DataColumn2 = tmpTable.DataColumn2;
更新
发布实际错误总是有帮助的。
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near 'a'. Msg 102, Level 15, State 1, Line 12 Incorrect syntax near 'd'.
看起来您使用的是SQL Server2005。可以从SQL Server 2008中进行合并。
您可以使用来检查您的SQL Server版本
select @@version。



