Pages

2016/11/20

SQL Serverで直前のuniqueidentifierを取得

SQL Serverで直前のuniqueidentifierを取得

SQLServer で、自動インクリメント設定をした uniqueidentifier に対して Insert を発行後、SELECT SCOPE_IDENTITY() を実行しても NULL が返ってきて ID が取得できませんね。

Returning ID of new row when ID is uniqueidentifier
http://stackoverflow.com/questions/32405923/returning-id-of-new-row-when-id-is-uniqueidentifier

以下のようにして、明示的に用意した値をセットする方法しかないようです。
DECLARE @newGuid TABLE(newValue UNIQUEIDENTIFIER); 
 
INSERT INTO hoge (hoge_name) 
OUTPUT inserted.hoge_id INTO  @newGuid(newValue ) 
values ('ほげ') 
 
SELECT @id = newValue FROM @newGuid
Related Posts Plugin for WordPress, Blogger...