SQL服務器 - 插入多行單(ANSI風格)語句
對於SQL Server 2000 +
根據SQL The Complete Reference, Third Edition (August 12, 2009):
1)多行INSERT的語法是
INSERT INTO table-name (columns not mandatory)
query
(236頁,圖10-3)。
2)SELECT語句的FROM子句強制性的(第87頁,圖6-1)。
因此,在這種情況下,僅使用一個INSERT
語句插入多行,我們需要一個auxiliary table with just one row:
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.
(PAG e 218)。
所以,
INSERT INTO TestInsert
VALUES (1,'a'), --The string delimiter is ' not ‘...’
(2,'b'),
(3,'c'),
(4,'d'),
(5,'e')
將SQL Server的2008+上工作。
此插入樣式在SQL Server 2000和2005中不可用。 – 2012-04-23 06:59:40