0

我有一个 SQL Server 数据库和一个 Firebird 数据库作为链接服务器。我正在尝试在链接服务器中选择一个表,但出现以下错误:

链接服务器“FIREBIRD”的 OLE DB 提供程序“MSDASQL”返回消息“[ODBC Firebird 驱动程序][Firebird]Dynamic SQL 错误
SQL 错误代码 = -104
令牌未知 - 第 1 行,第 22 列
。”。
消息 7306,级别 16,状态 2,第 4 行
无法从链接服务器“FIREBIRD”的 OLE DB 提供程序“MSDASQL”打开表““de_ib”。“ROHSTOFF”。

我有在我的 SQL 数据库中设置的链接表的同义词。以下三个语句都返回此错误:

SELECT * FROM ROHSTOFF
SELECT * FROM [dbo].[ROHSTOFF]
SELECT * FROM [FIREBIRD].[de_ib]..[ROHSTOFF]

但以下内容按预期返回数据:

SELECT * FROM OPENQUERY(FIREBIRD, 'SELECT * FROM ROHSTOFF')

如果我右键单击链接表并选择 Script Table as > INSERT To > New Query Editor Window,查询编辑器中将显示以下内容:

-- [FIREBIRD].[de_ib]..[ROHSTOFF] contains no columns that can be selected or the current user does not have permissions on that object.

我使用与 Firebird 数据库所有者匹配的凭据登录。

为什么会出现此错误,如何在不使用 OPENQUERY 的情况下从链接服务器中选择数据?我有一个从 Firebird 数据库中选择的遗留应用程序,但我需要它从同义词中无缝选择。

4

0 回答 0