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

c00*_*0fd 0 t-sql sql-server sql-server-2008-r2

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

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

我可以在一个INSERT INTO声明中使用多少这些值?

Fel*_*tan 6

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

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

它实际上在这里记录:

可以在单个INSERT语句中插入的最大行数为1000.

在这里:

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

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

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

  • 它不是具有限制的`INSERT`语句,而是`VALUES`子句.如果您执行从某处提取数据的插入,这一点很重要.该插入仅受内存/事务空间/磁盘空间的限制. (2认同)