SCOPE_IDENTITY() は、LAST ID を正しく提供します。必要なのは、それを @@Rowcount と組み合わせて、ID の範囲を指定することです。 他のリチャードが指摘するように 、これはインクリメントが 1 に設定されている場合にのみ機能します
例:
declare @last int, @first int insert ... select @last = scope_identity(), @first = scope_identity() - @@rowcount + 1
プレ>別の方法 (SQL Server 2008 でこれを使用すると、結果が保証されます) これを行うには、OUTPUT を使用します。 節
declare @ids table (id int) INSERT INTO Table1 (FirstName ,LastName ,EmailAddress) output inserted.id into @ids -- Get the ids SELECT id from @Ids
プレ>テーブルには、挿入されたすべての ID が含まれるようになりました