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;


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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

图片 表情