2012-05-08 154 views
5

我有2個表中的一個是Stage表,它的模式是exac到main的,我想用ID列作爲refrential鍵將數據從stage表更新到主表。 我曾嘗試在SQL中使用合併,但面臨着問題,因爲只有少數值需要更新,需要將一千個新值插入到主表中。 e.g:在SQL Server 2008中合併兩個表

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:(
) 

回答

2

您可以參考合併源在insert部分,如:

when not matched then insert 
    (id, name, email_id) 
    values (stage.id, stage.name, stage.email_id) 
+0

非常感謝,這爲我工作:) – Pratik