各位大侠,问下sqlserver sql语句中in后面的个数有限制吗,是多少。我自己在PC上用sqlserver2005 测了下,4W个可以执行,5W就报错了,
错误消息为:
消息 8632,级别 17,状态 2,第 1 行
内部错误: 达到了表达式服务限制。请在您的查询中查找潜在的复杂表达式,并尝试简化它们。

解决方案 »

  1.   

    in 里面有4W个,牛,就一个字
      

  2.   

    凡事总有限制,不要学K3。in会导致查询缓慢的,在大数据量下。
      

  3.   

    出现此问题的原因是 SQL Server 限制的标识符和常数可以在查询的单个表达式中包含的数量。此限制为 65,535注意:是在单个表达式中所有标识符和常数可以包含的数量
      

  4.   

    IN('0001755','0001765','0005715',.....)这应该算是一个表达式吧
    里面一个'0001755',是10个长度,4W个就是40W长度,比65535大多了。
      

  5.   

    in里4W个?
    如果是in(select xx from ……)这样呢?