【问题标题】:Getting syntax error when trying to use OPENQUERY尝试使用 OPENQUERY 时出现语法错误
【发布时间】:2010-10-05 12:59:17
【问题描述】:

我正在尝试通过 ODBC 对我们的 ERP 数据库进行查询。文档指南建议我们使用 OPENQUERY 来发送查询。

这是我的示例查询

SELECT
 Q.Part_No,
 Q.[Description],
 Q.Part_Type
FROM OPENQUERY
(
 LINKEDSERVER,
 '
 SELECT
  P.Part_No,
  P.[Description],
  P.Part_Type
 FROM LINKEDSERVER...Part_V_Part AS P
 WHERE P.Part_No = ''2712768''
 '
) AS Q

当我尝试运行该查询时,虽然我收到以下错误

OLE DB provider "MSDASQL" for linked server "LINKEDSERVER" returned message "[LINKED][ODBC Plex ODBC Report Data Source driver][OpenAccess SDK SQL Engine]Syntax error in SQL statement. syntax error line 1 at or after token <LINKEDSERVER>.[0]".
Msg 7321, Level 16, State 2, Line 1
An error occurred while preparing the query "
 SELECT
  P.Part_No,
  P.[Description],
  P.Part_Type
 FROM LINKEDSERVER...Part_V_Part AS P
 WHERE P.Part_No = '2712768'
 " for execution against OLE DB provider "MSDASQL" for linked server "LINKEDSERVER".

有人可以帮我吗?我以前从未使用过 OPENQUERY,但我直接处理示例文档中的示例。

【问题讨论】:

    标签: sql-server odbc openquery


    【解决方案1】:

    应该是这样的

        SELECT
     Q.Part_No,
     Q.[Description],
     Q.Part_Type
    FROM OPENQUERY
    (
     LINKEDSERVER,
     '
     SELECT
      P.Part_No,
      P.[Description],
      P.Part_Type
     FROM DatabaseName.SchemaName.Part_V_Part AS P
     WHERE P.Part_No = ''2712768''
     '
    ) AS Q
    

    将 DatabaseName 和 SchemaName 替换为您的实际数据库名称和模式名称(可能是 dbo)

    您不需要查询中的链接服务器名称

    查看Having Fun With OPENQUERY And Update,Delete And Insert Statements 的一些示例

    【讨论】:

    • 完美,谢谢。我不敢相信事情就这么简单。
    猜你喜欢
    • 2019-08-10
    • 2012-03-21
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 2020-09-28
    • 1970-01-01
    • 2013-11-15
    相关资源
    最近更新 更多