2

我正在尝试通过 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,但我直接处理示例文档中的示例。

4

1 回答 1

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)

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

看看有一些有趣的 OPENQUERY 和更新、删除和插入语句的例子

于 2010-10-05T13:01:51.537 回答