sql - 单个sql查询插入多个行?

  显示原文与译文双语对照的内容

这个问题已经有了如下答案:

我有一组数据要同时插入,比如 4行。 我的表格有三列: PersonIdOffice


INSERT INTO MyTable VALUES ("John", 123,"Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124,"Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125,"London Office");
INSERT INTO MyTable VALUES ("Miranda", 126,"Bristol Office");

是否可以在单个SQL语句中插入所有 4行?

时间:

在 SQL Server 2008中,可以使用一个SQL插入语句插入多行。


INSERT INTO Table ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

为了参考这一点,我们来看一下MOC教程 2778 - 在 SQL Server 2008中编写SQL查询。

如果要插入单个表,可以像这样编写查询:


insert into table1 (First,Last) values ('Fred','Smith'),
 ('John','Smith'),
 ('Michael','Smith'),
 ('Robert','Smith');

于SQL相关注意: 这个应答包是 对于 SQL 2008和更高版本,在其他答案中有许多更好的方法。

你可以使用 INSERT来选择联合所有的:


INSERT INTO MyTable (FirstCol, SecondCol)
 SELECT 'First', 1
 UNION ALL
SELECT 'Second', 2
 UNION ALL
SELECT 'Third', 3
...

只适用于小数据集,这对于你的4记录应该是很好的。

INSERT 使用 VALUES 语法的语句可以插入多个行。 为此,包括列值的多个列表,每个列包含在括号内,并用逗号分隔。

示例:


INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

...