2012-05-08 16 views
5

Ho 2 tabella uno è una tabella Stage il cui schema è exac to main, voglio aggiornare i dati dalla tabella stage alla tabella principale con la colonna ID come chiave di rifrazione. Ho provato a usare Merge in SQL, ma ho riscontrato problemi con questo poiché ci sono solo pochi valori da aggiornare e migliaia di nuovi valori devono essere inseriti nella tabella principale. es:Unisci due tabelle in 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:(
) 

risposta

2

È possibile fare riferimento alla fonte unione in parte insert, come:

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

Grazie mille, ha funzionato per me :) – Pratik

Problemi correlati