首先创建列,如果它不存在:
ALTER TABLE database2..targetTable
ADD targetColumn int null -- or whatever column definition is needed
由于您使用的是Sql Server 2005,因此您可以使用新的MERGE语句。 MERGE声明的优点是能够在一条语句中处理所有情况像来自源的缺失行(可以插入),缺少来自目标的行(可以执行删除),匹配行(可以执行更新)以及所有内容是在一次交易中完成的。例如:
MERGE database2..targetTable AS t
USING (SELECT sourceColumn FROM sourceDatabase1..sourceTable) as s
ON t.PrimaryKeyCol = s.PrimaryKeyCol -- or whatever the match should be bassed on
WHEN MATCHED THEN
UPDATE SET t.targetColumn = s.sourceColumn
WHEN NOT MATCHED THEN
INSERT (targetColumn, [other columns ...]) VALUES (s.sourceColumn, [other values ..])
MERGE语句就是为解决像你这样的情况下,我建议使用它,这比使用多个SQL批处理报表解决方案,基本上完成同样的事情MERGE确实在一个声明中没有添加更强大复杂。
有趣。我不知道合并。凉 – 2008-09-10 18:51:40