Получение синтаксической ошибки при попытке использования OPENQUERY - PullRequest
2 голосов
/ 05 октября 2010

Я пытаюсь сделать запрос через 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 Ответ

1 голос
/ 05 октября 2010

Должно быть так

    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 и обновления, удаления и вставки операторов для некоторых примеров

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...