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

T-SQL MERGE - どのアクションが実行されたかを調べる

    テーブル変数に出力して、そこから取得できます。これを試してください:

    DECLARE @t table (C1 int, C2 int)DECLARE @C1 INT, @C2 INTDECLARE @Output TABLE (DeletedC1 INT, DeletedC2 INT, ActionType VARCHAR(20), InsertedC1 INT, InsertedC2 INT)set @c1 =1set @c2 =1MERGE @t as tgtUSING (SELECT @C1, @C2) AS src (C1, C2)ON (tgt.C1 =src.C1) WHEN MATCHED AND tgt.C2 !=src.C2 THEN UPDATE SET tgt .C2 =src.C2 WHEN NOT MATCHED BY TARGET THEN INSERT VALUES (src.C1, src.C2) OUTPUT deleted.*, $action, inserted.* INTO @Output;SELECT * FROM @Output WHERE ActionType ='INSERT'  

    1. postgres array_aggエラー:異なる次元の配列を蓄積できません

    2. MySQL Workbenchがセミコロンが必要だと言っているのはなぜですか?

    3. MYSQL count(*)またはcount(1)の何が優れていますか?

    4. ORA-01461:LONG列に挿入する場合にのみLONG値をバインドできます-照会時に発生します