In MERGE
statement in SQL Server 2008 exists WHEN NOT MATCHED BY SOURCE
and WHEN NOT MATCHED BY TARGET
, example taken from Inserting, Updating, and Deleting Data by Using MERGE
-- MERGE statement with join conditions that produce unexpected results.
USE tempdb;
GO
BEGIN TRAN;
MERGE Target AS T
USING Source AS S
ON (T.EmployeeID = S.EmployeeID AND T.EmployeeName LIKE 'S%'
AND S.EmployeeName LIKE 'S%' )
WHEN NOT MATCHED BY TARGET
THEN INSERT(EmployeeID, EmployeeName) VALUES(S.EmployeeID, S.EmployeeName)
WHEN MATCHED
THEN UPDATE SET T.EmployeeName = S.EmployeeName
WHEN NOT MATCHED BY SOURCE
THEN DELETE
OUTPUT $action, Inserted.*, Deleted.*;
ROLLBACK TRAN;
GO
Is there something like this in DB2? For example when I performing MERGE
and for any record data in table exists but not in query, NOT MATCH BY SOURCE
it will remove data from table.