SQL Server IN(最大值,参数,允许,在,这里)?

时间:2011-12-02 13:07:49

标签: sql sql-server database

我可以将多少个参数传递给SQL Server IN()函数?

SELECT * FROM TABLE where ID IN ( 1,2,3,4,5,..,.,....)

3 个答案:

答案 0 :(得分:8)

此限制 65,535

请参阅原因部分HERE

答案 1 :(得分:6)

根据documentation - "数千"。

答案 2 :(得分:6)

IN clause中包含极大数量的值(数千个)会消耗资源并返回错误8623或8632.要解决此问题,请将项目存储在表中的IN列表中。

  

错误8623:

     

查询处理器耗尽了内部资源而无法使用   制定查询计划。这是一个罕见的事件,只有预期   非常复杂的查询或引用非常大的查询   表或分区的数量。请简化查询。如果你   相信您错误地收到了此消息,请联系客户   支持服务以获取更多信息。

     

错误8632:

     

内部错误:已达到表达式服务限制。请   在查询中查找可能复杂的表达式,并尝试   简化它们。