首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

select语句中的in运算解决方法

2013-01-27 
select语句中的in运算select语句中where后用in运算时,in运算中最多支持多少参数?我有条语句,判断操作员对

select语句中的in运算
select语句中where后用in运算时,in运算中最多支持多少参数?
我有条语句,判断操作员对哪些部门具有数据操作权时,用了in运算。当部门很多时,系统报错。我前端是用PB9开发的.
[解决办法]
MSSQL木限制。 IN里面的东西过多可以弄成表。
[解决办法]
在 IN 子句中包括数量非常多的值(数以千计)可能会消耗资源并返回错误 8623 或 8632。若要解决这一问题,请将这些项存储于某个表的 IN 列表中。

错误 8623:

查询处理器用尽了内部资源,无法生成查询计划。这种情况很少出现,只有在查询极其复杂或引用了大量表或分区时才会出现。请简化查询。如果您认为该消息的出现纯属错误,请与客户支持服务部门联系,了解详细信息。

错误 8632:

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

[解决办法]
这个你可以先输出改sql,然后再mssql忠执行是否成功。
[解决办法]


数据操作权 in ('操作权1','操作权2','操作权3','操作权4','操作权5')



[解决办法]
是不是部门很多时,传递到数据库执行的SQL语句,超出了最大长度了。用openquery 或者用exec执行那么就会出错。
[解决办法]
直接写的时候貌似没啥问题,但是我试过在存储过程里面调用的时候传一大串到in里面会报错,说执行计划过于复杂,后来我是把那串先换成一个表变量存进去,问题就解决了。

热点排行
Bad Request.