sql - 选择对不同数据库服务器上的 2 个表进行查询

标签 sql asp-classic vbscript sybase

我正在尝试通过在经典 ASP 中查询 2 个数据库 (Sybase) 来生成报告。

我创建了 2 个连接字符串:

connA for databaseA
connB for databaseB

两个数据库都位于同一服务器上(不知道这是否重要)

查询:

q1 = SELECT column1 INTO #temp FROM databaseA..table1 WHERE xyz="A"

q2 = 从 table2 a #temp b WHERE b.column1=a.columnB 中选择列A、列B、...、列Z

后跟:

response.Write(rstsql) <br>
set rstSQL = CreateObject("ADODB.Recordset")<br>
rstSQL.Open q1, connA<br>
rstSQL.Open q2, connB

当我尝试在浏览器中打开此页面时,收到错误消息:

Microsoft OLE DB Provider for ODBC Drivers error '80040e37'

[DataDirect][ODBC Sybase Wire Protocol driver][SQL Server]#temp not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).

有人可以帮助我了解问题所在并帮助我解决它吗?

谢谢。

最佳答案

对于这两个查询,您似乎正在尝试插入#temp。 #temp 位于其中一个数据库(为了论证,数据库A)。因此,当您尝试从数据库 B 插入 #temp 时,它会报告它不存在。

尝试将两者中的Into #temp From更改为Into databaseA.dbo.#temp From声明。

此外,请确保连接字符串对其他数据库具有权限,否则这将不起作用。

更新:与超出范围的临时表相关 - 如果您有一个对两个数据库都具有权限的连接字符串,那么您可以将其用于两个查询(同时保持连接处于事件状态)。查询其他数据库中的表时,引用该表时请务必使用[DBName].[Owner].[TableName]格式。

关于sql - 选择对不同数据库服务器上的 2 个表进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48767810/

相关文章:

sql - 将 WHERE 子句添加到外键

regex - Vbscript 正则表达式 - 匹配 [下一页]

mysql - vbscript 中的安全 MySQL 查询

Scripting.Dictionary Lookup-add-if-not-present 只有一键搜索?

process - vbscript 启动一个进程

java - mysql查询错误insert joined select

sql - 在 Git 中存储 Drupal SQL

mysql - 如何使这个 UPDATE 查询更快?

asp-classic - 经典的 asp include virtual with backslash 在 IIS7.5 上不起作用(与斜杠一起工作)

excel - ASP : How to import data from a merged cell in Excel?