sql >> Database >  >> RDS >> Sqlserver

Hoe te verwijderen uit de bron met de opdracht MERGE in SQL Server 2008?

U kunt de output-clausule gebruiken om de gewijzigde/ingevoegde rijen vast te leggen in een tabelvariabele en die te gebruiken met een delete-instructie na de samenvoeging.

DECLARE @T TABLE(EmployeeID INT);

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  
OUTPUT S.EmployeeID INTO @T;

DELETE Source1
WHERE EmployeeID in (SELECT EmployeeID
                     FROM @T);


  1. Hoe PostgreSQL bytea kolom hex decoderen naar int16/uint16 in r?

  2. MySQL-connector c++ bevat geen libmysql.lib

  3. Is er een manier om met terugwerkende kracht een op tijd/knooppunt gebaseerde UUID in PHP te maken?

  4. postgresql json-aggregaat