常に単一のレコードを更新または挿入する必要があるマージ ステートメントがあります。そのステートメントのIDを変数に覚えておきたいです。次のようになります。
DECLARE @int int
MERGE dbo.table AS A
USING (SELECT 'stringtomatch' AS string) AS B ON B.string= A.string
WHEN MATCHED THEN
UPDATE SET somecolumn = 'something'
WHEN NOT MATCHED THEN
INSERT
VALUES ('stringtomatch',
'something')
OUTPUT @int = inserted.ID;
このように出力句に @int を設定できないため、これは機能しません。temptable を作成し、出力でINTO @temptableを使用できることはわかっています。しかし、それは常に単一のレコードであることを知っているので、ID を INT 変数に入れたいと思います。これは可能ですか?または、テーブル変数を使用する必要がありますか。いくつかの構文が欠けていることを願っています。