在SQL Server 2008中合并两个表

Pra*_*tik 5 sql t-sql sql-server sql-server-2005 sql-server-2008

我有2个表一个是Stage表,其架构是exac到main,我想将数据从stage表更新到主表,ID列作为refrential键.我已经尝试在SQL中使用Merge但面临问题,因为只需要更新几个值,并且需要将数千个新值插入主表.例如:

MERGE TABLE tblMain AS main
USING (SELECT ID,NAME,EMAIL_ID FROM tblStage) as stage
ON main.ID=stage.ID
WHEN MATCHED THEN UPDATE SET
main.ID=stage.ID,
main.NAME=stage.NAME,
main.EMAIL_ID=stage.EMAIL_ID
WHEN NOT MATCHED THEN INSERT VALUES 
(
----I am stucked here what to write as there are thousands of values:(
)
Run Code Online (Sandbox Code Playgroud)

And*_*mar 2

您可以参考该insert部分的合并源码,例如:

when not matched then insert
  (id, name, email_id) 
  values (stage.id, stage.name, stage.email_id)
Run Code Online (Sandbox Code Playgroud)