Microsoft SQL Server 2005からだったか、INSERTED.(フィールド名)というのが使えるようになっています。
IDENTITYの項目名がidとします。 下記のSQLを実行します。
INSERT INTO table_name(hogehoge)
OUTPUT INSERTED.id
VALUE ('hogehoge')
INSERT文によって生成されたidが取得できます。
C#(.NET)でMSSQL Serverを使うときは、SELECTと同じように扱って、値idを取得できます。
MSSQLでも2000までは、以下のIDENT_CURRENT、@@IDENTITY、SCOPE_IDENTITYというものを知らないといけなかったんですが、新しいバージョンだと不要です。
Transact-SQL リファレンス IDENT_CURRENT
- IDENT_CURRENT は、任意のセッションと有効範囲内の特定のテーブルに対して生成された最後の ID 値を返します。
- @@IDENTITY は、すべての有効範囲を対象に、現在のセッション内の任意のテーブルに対して生成された最後の ID 値を返します。
- SCOPE_IDENTITY は、現在のセッションと現在の有効範囲内の任意のテーブルに対して生成された最後の ID 値を返します。

コメントする