[MS SQL] Insertしたデータの ID(IDENTITY) を取得する方法

    SQL Server では、テーブルの列に対して自動でIDを採番してくれる IDENTITY というプロパティがあります。このプロパティが設定されている列については、手動で値を登録することができません。

    例えば INSERT 処理後、このIDを使って関連するテーブルへデータを続けて登録したい場合は、以下のように(SCOPE_IDENTITYを使用)すれば直前に採番された ID を取得することができます。

create table [dbo].TEST (
  ID int identity not null
  , Value nvarchar(50)
);

INSERT INTO TEST([Value]) VALUES ('TEST')

--1が表示される
SELECT SCOPE_IDENTITY()

    上記例では TEST テーブルを作成し、1件のデータを登録しています。1件目のデータなので採番された1が表示されます。