sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008 で MERGE コマンドを使用してソースから削除するには?

    output 句を使用して、変更/挿入された行をテーブル変数にキャプチャし、マージ後に削除ステートメントで使用できます。

    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. SQL Server Expressへの接続-サーバー名は何ですか?

    2. ALTERTABLEスクリプトのMySQL変数

    3. PythonからリモートサーバーのMySQLに接続する

    4. SQL Server(T-SQL)でのMONTH()の例