sqlserver foreach 上限问题

### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100。
; uncategorized SQLException for SQL []; SQL state [S0001]; error code [8003]; 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100。

场景限定:mybatis  sqlserver foreach 批量入库

刚开始使用 merge into,后来直接insert(跟本次记录问题核心无关,单纯的记录下insert效果更高)

批量入库

1、数据量1021 报错如文章开始,怀疑是数据太多,很多人说foreach 上限1000

2、数据量限定800测试,还是报错

   数据量限定500测试,还是报错

。。。。直到数据量限定50的时候,终于不报错

于是怀疑是否和参数字段数量(也就是insert into .... values(,,,)中传值数)有关

3、验证果然是,因为当前表字段较多,单条插入参数26个

1021/26>80.7

亲测超过80条报错

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值