尝试使用OPENQUERY时出现语法错误

时间:2010-10-05 12:59:17

标签: sql-server odbc openquery

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

1 个答案:

答案 0 :(得分: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替换为您的实际数据库名称和schemaname(可能是dbo)

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

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