SQL Server可以插入单个插入语句中的最大行数

前端之家收集整理的这篇文章主要介绍了SQL Server可以插入单个插入语句中的最大行数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想做一个批量插入,类似于这个问题

How to do a batch insert in MySQL@H_502_3@

> sql Server在单个insert语句中可以插入多少行的限制是什么?
>例如,插入第一个值但第二个值导致主键违规时会发生什么.是否所有INSERT语句都回滚了?@H_502_3@

INSERT INTO tbl_name (a,b) 
VALUES (1,2),(1,3));

解决方法

使用INSERT INTO … VALUES时,可以在一个语句中插入的最大行数为1000 …
INSERT INTO TableName( Colum1)
VALUES (1),(2),(3),...... upto 1000 rows.

但是,如果您使用SELECT语句在表中插入行,则没有限制,例如……@H_502_3@

INSERT INTO TableName (ColName)
Select Col FROM AnotherTable

现在来看你的第二个问题.插入过程中发生错误时会发生什么.@H_502_3@

好吧,如果你使用多值构造插入行@H_502_3@

INSERT INTO TableName( Colum1)
VALUES (1),(3)

在上面的场景中,如果任何行插入导致错误,则将回滚整个语句,并且不会插入任何行.@H_502_3@

但是如果你为每一行插入带有单独语句的行,即……@H_502_3@

INSERT INTO TableName( Colum1) VALUES (1)
INSERT INTO TableName( Colum1) VALUES (2)
INSERT INTO TableName( Colum1) VALUES (3)

在上面的例子中,每个行插入都是一个单独的语句,如果任何行插入只导致错误,那么特定的插入语句将被回滚,其余的将被成功插入.@H_502_3@

原文链接:https://www.f2er.com/mssql/78819.html

猜你在找的MsSQL相关文章