2010-10-05 10 views
2

Я пытаюсь выполнить запрос через ODBC в нашу базу данных ERP. В руководстве по документации мы предлагаем использовать OPENQUERY для отправки запроса.Получение синтаксической ошибки при попытке использовать 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

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

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 

Заменить Имя_базы_данный и SchemaName с фактическим именем базы данных и SchemaName (вероятно, ПСЭ)

Вам не нужно имя связанного сервера внутри запроса

Посмотрите на Having Fun With OPENQUERY And Update,Delete And Insert Statements для некоторых примеров

+0

Отлично, спасибо. Я не могу поверить, что это было так просто. –

Смежные вопросы