SQL Server应该是可以优化 In 的,只要你建立了正确的索引,那么它应该完全等价于(你举得例子少了单引号)
where PointCode ='A0001' or PointCode ='A0002' or PointCode ='A0003' or PointCode ='A0004' or PointCode ='A0005'
你可以使用SQL Server管理客户端的分析器工具查看一下是否用到索引。如果没有,那么就直接写成这种表达式(而不是in)就行了。不过SQL Server应该是优化了这个的,应该不会使索引失效。
你说“ In 会使 SQLServer表中的索引失效”,这个出自哪一个文章?是否是针对SQL Server单独进行了“例外”考虑?