SQL Server 2008 を使用しています。これがサンプル テーブルです。
SEQ NAME GROUP
1 abc 1
2 bcd 1
3 cde 3
上記の表で、SEQ は私の ID 列 (自動番号) です。name = 'def' および group = 3 の新しい行を挿入したい場合は、次のように実行できます。
INSERT INTO SampleTable(NAME, GROUP) VALUES ('def',3)
ここで、新しい行を挿入してから、新しく挿入された行の GROUP = SEQ を設定する場合、以下に示すように 2 つの手順で実行しています。
INSERT INTO SampleTable(NAME, GROUP) VALUES ('def',999)
UPDATE SampleTable SET GROUP = SEQ where NAME = 'def'
ワンステップでそれを行う方法はありますか?例えば
INSERT INTO SampleTable(NAME, GROUP) VALUES ('def',SCOPE_IDENTITY())
挿入が完了した後にのみ SCOPE_IDENTITY() が設定されるため、上記のステートメントは明らかに機能しません。しかし、単一の挿入ステートメントを使用して GROUP = SEQ を設定する方法はありますか?