MERGE语句是SQL SERVER 2008中新增的语法,它可以将源数据集与目标数据集通过指定的关系进行比较,从而判断源与目标数据集的状态。根据这些状态,可以在一个语句中分别对这些数据进行插入、删除及更新操作,这在数据合并时可以很大程度地简化判断语句。
下面看个示例代码:
;MERGE Sales.SalesOrderHeaderSalesReason AS target USING #SalesOrderHeaderSalesReason AS source ON target.SalesOrderID=source.SalesOrderID AND target.SalesReasonID=source.SalesReasonID WHEN MATCHED THEN UPDATE SET ModifiedDate=GETDATE() WHEN NOT MATCHED THEN INSERT (SalesOrderID,SalesReasonID,ModifiedDate) VALUES(source.SalesOrderID,source. SalesReasonID,GETDATE());