首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个SQL查询中插入多行?

问在一个SQL查询中插入多行?
EN

Stack Overflow用户
提问于 2009-01-17 05:55:54
回答 4查看 3M关注 0票数 1.9K

我一次有多组数据要插入,比如4行。我的表有三列:Person、Id和Office。

代码语言:javascript
复制
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行吗?

EN

回答 4

Stack Overflow用户

发布于 2009-01-17 07:14:14

在SQL Server2008中,您可以使用单个SQL insert语句插入多行。

代码语言:javascript
复制
INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

有关这方面的参考,请参阅MOC课程2778A -在SQL Server 2008中编写SQL查询。

例如:

代码语言:javascript
复制
INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office');
票数 2.5K
EN

Stack Overflow用户

发布于 2009-01-17 06:10:26

如果您要插入到单个表中,则可以像这样编写查询(可能只在MySQL中):

代码语言:javascript
复制
INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');
票数 853
EN

Stack Overflow用户

发布于 2009-01-17 06:16:24

注意:此答案适用于SQL Server2005。对于SQL Server 2008和更高版本,有更好的方法,如其他答案中所示。

您可以使用INSERT with SELECT UNION ALL

代码语言:javascript
复制
INSERT INTO MyTable  (FirstCol, SecondCol)
    SELECT  'First' ,1
    UNION ALL
SELECT  'Second' ,2
    UNION ALL
SELECT  'Third' ,3
...

只适用于较小的数据集,这对于您的4条记录应该是足够的。

票数 147
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/452859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档