sqlserver中Merge命令

基于源表对目标表做Insert,Update,Delete操作

--确定目标表 (MERGE 语句的目标不能是远程表、远程视图或远程表上的视图。)
MERGE INTO USERSESSION.dbo.T_USERINFO TargetTable
--从数据源查找编码相同的产品
USING [134].USERSESSION.dbo.T_USERINFO SourceTable ON SourceTable.USERID=TargetTable.USERID
--如果目标表中不存在,则从数据源插入目标表
WHEN NOT MATCHED  BY TARGET THEN  INSERT VALUES (SourceTable.USERID,SourceTable.MENUPOWER,SourceTable.REPORTPOWER,SourceTable.SESSIONID,SourceTable.INDATE,SourceTable.msrepl_tran_version) 
--如果目标表中存在 源表中不存在,则删除
When Not Matched By SOURCE Then DELETE
OUTPUT $action AS actions ,Inserted.USERID,Deleted.USERID;

您可以选择一种方式赞助本站