问题描述
我有一个 sql Server 数据库和一个 Firebird 数据库作为链接服务器。我正在尝试在链接服务器中选择一个表,但出现以下错误:
链接服务器“FIREBIRD”的 OLE DB 提供程序“MSDAsql”返回消息“[ODBC Firebird 驱动程序][Firebird]动态 sql 错误
sql 错误代码 = -104
令牌未知 - 第 1 行,第 22 列
。”。
Msg 7306,Level 16,State 2,Line 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')
如果我右键单击链接表并选择脚本表为 > 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.
为什么会出现此错误,以及如何在不使用 OPENQUERY 的情况下从链接服务器中选择数据?我有一个从 Firebird 数据库中进行选择的遗留应用程序,但我需要它从同义词中无缝地进行选择。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)