### 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条报错