INSERT INTOで挿入したレコードの主キー(INDENTITY)を求めるOUTPUT句

 あるレコードを記録した直後に、そのレコードの主キー(INDENTITYで作成されたもの)を取得する方法です。
 これから挙げる方法は、Microsoft SQLServer2005で新登場したSQLの句です。


 詳細はMSDNのページをご覧ください
 OUTPUT 句 (Transact-SQL)
 http://msdn2.microsoft.com/ja-jp/library/ms177564.aspx
 実際にはこんな感じで使います。

INSERT INTO TableHoge (age)
OUTPUT INSERTED.ID
VALUES ('30')

 これはTableHogeというテーブルのage列に「30」という値を記録するSQL文ですが、INSERT INTO句とVALUES句の間に、見慣れないOUTPUT INSERTED.IDという句があります。これが今回のキモになります。
 これはINSERT INTO句によって増えたレコードのID列の値を出力しなさいという命令文です。
 かなり便利な句だと思いますので、SQLServer2005をご利用の型はどんどん活用してください。
=2008/9/19追記=
 MySQLでは「mysql_insert_id()」で取得できます。

スポンサーリンク

シェアする

スポンサーリンク