首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Contains()时达到2100个参数限制(SQL Server)

使用Contains()时达到2100个参数限制(SQL Server)
EN

Stack Overflow用户
提问于 2009-03-17 21:47:17
回答 5查看 75.3K关注 0票数 60
代码语言:javascript
复制
from f in CUSTOMERS
where depts.Contains(f.DEPT_ID)
select f.NAME

depts是部门ids的列表(IEnumerable<int>)

这个查询可以很好地工作,直到您传递一个大列表(比如大约3000个部门ids)。然后我得到了这个错误:

传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此RPC请求中提供的参数太多。最大值为2100。

我将我的查询更改为:

代码语言:javascript
复制
var dept_ids = string.Join(" ", depts.ToStringArray());
from f in CUSTOMERS
where dept_ids.IndexOf(Convert.ToString(f.DEPT_id)) != -1
select f.NAME

使用IndexOf()修复了错误,但使查询变慢。有没有其他方法来解决这个问题呢?非常感谢。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/656167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档