内部查询处理器错误: 在查询优化过程中,查询处理器用尽了堆栈空间
时间:2011-08-19
来源:互联网
我有一个ASP页面,需要对两个在不同数据库中的表进行查询操作.这两个表所在数据库都是SQL SERVER2000
第一个数据库中的表假设为A,第二个数据库中的为B
我是想要做 select * from A where A.xx in (select B.xx from B where yy>1) 像这样的查询.
但是他们不在一个数据库中不能直接这样查
所以我是先把select B.xx from B where yy>1的结果保存到一个recordset中.然后遍历recordset,把所有的结果串成字符串
do while not rs.eof
str = str&"'"&rs("xx")&"',"
rs.movenext
loop
然后再执行 "select * from A where A.xx in ("&str&")"
也就是说把B表查到的全部内容串在一起,写在第二个SQL语句中.
这样做,如果第一个SQL语句中查到的结果是几千条数据的话,第二个SQL语句可以正常执行.
但是第一个SQL查询的结果如果是几万条数据,那么第二句查询就会报错:
"内部查询处理器错误: 在查询优化过程中,查询处理器用尽了堆栈空间"
----------------------------------
1.请问上面的报错是不是因为SQL语句中串的字符太多了导致的呢?
2.有没有比较好一点的方法可以对在不同数据库中的两个表进行多表查询呢?
第一个数据库中的表假设为A,第二个数据库中的为B
我是想要做 select * from A where A.xx in (select B.xx from B where yy>1) 像这样的查询.
但是他们不在一个数据库中不能直接这样查
所以我是先把select B.xx from B where yy>1的结果保存到一个recordset中.然后遍历recordset,把所有的结果串成字符串
do while not rs.eof
str = str&"'"&rs("xx")&"',"
rs.movenext
loop
然后再执行 "select * from A where A.xx in ("&str&")"
也就是说把B表查到的全部内容串在一起,写在第二个SQL语句中.
这样做,如果第一个SQL语句中查到的结果是几千条数据的话,第二个SQL语句可以正常执行.
但是第一个SQL查询的结果如果是几万条数据,那么第二句查询就会报错:
"内部查询处理器错误: 在查询优化过程中,查询处理器用尽了堆栈空间"
----------------------------------
1.请问上面的报错是不是因为SQL语句中串的字符太多了导致的呢?
2.有没有比较好一点的方法可以对在不同数据库中的两个表进行多表查询呢?
作者: number321 发布时间: 2011-08-19
select * from 库名..A where xx in (select xx from 库名..B where yy>1)
作者: gingerkang 发布时间: 2011-08-19
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28