在往SQL server 2008R2的同一张表一条sql插入1000条以上数据的就会出现 “INSERT 语句中行值表达式的数目超出了 1000 行值的最大允许值。” 这个错误,如图
sql语句类似于这种:
insert into test(name)
values (1),(2),(3),(4),(5),(6),...(1001) --这里是1001条记录
那么如何解决这个问题呢:
把sql 分批插入 不要大于1000条数据就行
insert into 表名(字段1,字段2......) select 临时表名.字段1,临时表名.字段2...... from (values(行1数据),(行2数据)......) as 临时表名(字段1,字段2......)
insert into test(name) values (1),(2),(3),(4),(5),(6),...(1001)
insert into test (name) select t.name from (values (‘1‘),(‘2‘),(‘3‘),(‘4‘),(‘5‘),(‘6‘),...(‘1001‘)) as t(name)
insert into test (name,sex) select t.name,t.sex from (values (‘1‘,‘男’),(‘2‘,‘男’),(‘3‘,‘男’),(‘4‘,‘男’),(‘5‘,‘男’),(‘6‘,‘男’),...(‘1001‘,‘男’)) as t(name,sex)
注意:from后面的临时表的字段和数据的字段要对应
sql INSERT 语句中行值表达式的数目超出了 1000 行值的最大允许值 的问题解决办法
原文:https://www.cnblogs.com/makalochen/p/12699258.html