2011-01-10 20 views
6

こんにちは
SQL Server 2008で使用できる1つのTSQLを使用して、10行を一度に挿入します。 挿入された行のIDENTITYが必要です。私は以下のソリューションが働くだろうと思いますが、イムないイムは、前の挿入を実行している間、いくつかの他の挿入が起こったかどうかわからSQL Server 2008で複数挿入のアイデンティティーを取得

INSERT INTO tableA VALUES (1,2), (3,4), (4,5), ....
DECLARE @LastID INT = @@IDENTITY
SELECT TOP(10) ID FROM tableA WHERE ID<[email protected] ORDER BY ID DESC

答えて

14

結果に影響を与えるだけでOUTPUT clauseを使用する - それは、アプリケーションへの出力を返すことができますか、さらなる作業のためにテーブル変数に変換します。

など。あなたのクエリは次のようになります。

INSERT INTO tableA 
OUTPUT inserted.ID 
VALUES (1,2), (3,4), (4,5), ... 
15

あなたはOUTPUT句を使用することができます:私は必要な正確に何

DECLARE @tablevar table (ID int); 

INSERT INTO tableA 
OUTPUT INSERTED.ID INTO @tablevar 
VALUES (1,2), (3,4), (4,5), .... 
+0

素晴らしい答えを、が、それは一時テーブルを回避することができますか? – Ehsan

+1

@Ehsan - 'INTO @ MyTableVar'部分を省略してください。 –

+0

@エサン:ダミアンの答えを受け入れることを提案できますか? –

関連する問題