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