在 SQL Server 2008 中,通过使用 MERGE 语句,可以在单个语句中执行多个数据操作语言 (DML) 操作。例如,您可能需要根据在另一个表中找到的差异在一个表中插入、更新或删除行,从而对两个表进行同步。通常,可以通过执行包含各个 INSERT、UPDATE 和 DELETE 语句的存储过程或批处理来实现这一目的。然而,这意味着需要多次计算和处理源表和目标表中的数据;至少对每个语句计算和处理一次。因为MERGE性能上比单个的INSERT,UPDATE,DELETE要快。
示例:
图。。。
注意:如果target表和source表连接结果有重复记录,那么在执行MERGE时会报异常,也就是说MERGE不能处理重复记录
MSDN:
MERGE (Transact-SQL)
http://msdn.microsoft.com/zh-cn/library/bb510625.aspx
优化 MERGE 语句性能