我可以将多少个参数传递给SQL Server IN()函数?
SELECT * FROM TABLE where ID IN ( 1,2,3,4,5,..,.,....)
答案 0 :(得分:8)
此限制 65,535 。
请参阅原因部分HERE。
答案 1 :(得分:6)
根据documentation - "数千"。
答案 2 :(得分:6)
在IN clause
中包含极大数量的值(数千个)会消耗资源并返回错误8623或8632.要解决此问题,请将项目存储在表中的IN列表中。
错误8623:
查询处理器耗尽了内部资源而无法使用 制定查询计划。这是一个罕见的事件,只有预期 非常复杂的查询或引用非常大的查询 表或分区的数量。请简化查询。如果你 相信您错误地收到了此消息,请联系客户 支持服务以获取更多信息。
错误8632:
内部错误:已达到表达式服务限制。请 在查询中查找可能复杂的表达式,并尝试 简化它们。