次のように、新しく挿入された ID を SSMS コンソールに出力することができます。
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
これは、たとえばからも使用できます。 C# で、呼び出し元のアプリに ID を返す必要がある場合 - .ExecuteScalar()
を使用して SQL クエリを実行するだけです (代わりに .ExecuteNonQuery()
) 結果の ID
を読み取る
または、新しく挿入された ID
を取得する必要がある場合 T-SQL 内で (たとえば、後でさらに処理するため)、テーブル変数を作成する必要があります:
DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
このようにして、複数の値を @OutputTbl
に入れることができます それらに対してさらに処理を行います。 「通常の」一時テーブルを使用することもできます (#temp
) または「実際の」永続テーブルを「出力ターゲット」としてここで使用することもできます。