SQL Server 2008 で MERGE コマンドを使用して、テーブルの行を挿入/更新しています。ただし、ターゲット テーブルとソース テーブルは同じです。そのため、行が存在するかどうかを確認し、同じテーブルで更新するか、挿入します。ただし、次のスクリプトを使用して挿入を行うことはできません。
何が問題なのか指摘していただけますか?
`MERGE INTO Table1 as t
USING (SELECT * FROM Table1 WHERE ConsumerId = @ConsumerId AND Table1Id = @Table1Id) AS s
ON (t.ConsumerId = s.ConsumerId
AND t.Table1Id = s.Table1Id)
WHEN MATCHED THEN
UPDATE SET
VersionNumber = s.VersionNumber + 1
WHEN NOT MATCHED THEN
INSERT (
ConsumerId,
Table1Id,
VersionNumber
)
VALUES (
@ConsumerId,
@Table1Id,
1
);
これを実行すると、0 行が影響を受けます。