Attualmente sto usando il seguente codice di unione per migrare la data dall'origine alla destinazione. Ho un nuovo requisito per estendere il codice sottostante per eliminare il record dal sorgente una volta che un aggiornamento/inserto viene eseguito sulla destinazione. Questo è possibile utilizzando merge (tutti gli esempi che vedo in rete avevano eseguendo del/inserimento/aggiornamento nel bersaglio non sulla fonte)Come eliminare dall'origine utilizzando il comando MERGE in SQL Server 2008?
MERGE Target1 AS T
USING Source1 AS S
ON (T.EmployeeID = S.EmployeeID)
WHEN NOT MATCHED BY TARGET AND S.EmployeeName LIKE 'S%'
THEN INSERT(EmployeeID, EmployeeName) VALUES(S.EmployeeID, S.EmployeeName)
WHEN MATCHED
THEN UPDATE SET T.EmployeeName = S.EmployeeName
WHEN NOT MATCHED BY SOURCE AND T.EmployeeName LIKE 'S%'
THEN DELETE ;
Non si può fare come parte di una singola istruzione. Ogni istruzione di modifica dei dati apporta solo modifiche a una singola tabella. –
Grazie Damien. – nfa379