SQL Server - 単一の ( ANSI スタイル) ステートメントで複数の行を挿入する
SQL Server 2000 以降の場合
SQL The Complete Reference, Third Edition (2009 年 8 月 12 日)によると:
1) 複数行 INSERT の構文は次のとおりです。
INSERT INTO table-name (columns not mandatory)
query
(236 ページ、図 10-3)。
2) SELECT ステートメントには FROM 句が必須です (87 ページ、図 6-1)。
したがって、この場合、1 つのINSERT
ステートメントだけを使用して複数の行を挿入するには、 1 つの行だけを含む補助テーブルが必要です。
CREATE TABLE dual(value INT PRIMARY KEY CHECK(value = 1))
INSERT dual(value) VALUES(1)
その後
INSERT INTO table-name (columns) -- the columns are not mandatory
SELECT values FROM dual
UNION ALL
SELECT another-values FROM dual
UNION ALL
SELECT another-values FROM dual
編集 2: SQL Server 2008+ の場合
SQL Server 2008 以降では、行コンストラクターを使用できます: (values for row 1), (values for row 2), (values for row 3), etc.
(218 ページ)。
そう、
INSERT INTO TestInsert
VALUES (1,'a'), --The string delimiter is ' not ‘...’
(2,'b'),
(3,'c'),
(4,'d'),
(5,'e')
SQL Server 2008 以降で動作します。