单个INSERT INTO语句中允许多少个值?

时间:2015-10-01 06:49:36

标签: sql-server tsql sql-server-2008-r2

当我在SQL Server 2008数据库表中插入多行时:

INSERT INTO MyTable (Name, ID)
VALUES ('First',1),
('Second',2),
('Third',3),
('Fourth',4),
('Fifth',5)

我允许在单个INSERT INTO声明中使用多少个值?

2 个答案:

答案 0 :(得分:6)

根据我的测试,限制为1000行。刚尝试插入很多行并提出了这个错误:

  

INSERT语句中的行值表达式数超过   允许的最大行数1000行。

实际记录为here

  

可以在单个INSERT中插入的最大行数   声明是1000。

here

  

通过插入行可以构造的最大行数   直接在VALUES列表中是1000.如果是,则返回错误10738   在这种情况下,行数超过1000.

请注意,1000行限制仅适用于单个VALUES子句。正如Lasse V. Karlsen所评论的那样:

  

INSERT语句不是有限制的,而是VALUES   条款。如果您执行从中提取数据的插入,这一点很重要   某处。该插入仅受内存/事务的限制   空间/磁盘空间。

答案 1 :(得分:1)

  

“一个VALUES子句中的最大行数为1000”

INSERT语句不限于1000行。 Reference

修改

创建csv文件(或具有已定义字段分隔符和行分隔符的某个文件)并使用BULK INSERT选项将文件加载到数据库。文件可以有100000行;使用批量上传加载大文件不会有任何问题。Source