Ottenere errore di sintassi quando si tenta di utilizzare OPENQUERY
-
27-09-2019 - |
Domanda
Sto cercando di fare una query tramite ODBC nostro database ERP. La guida di documentazione suggerisce che usiamo OPENQUERY per inviare la query.
Questo è il mio esempio di query
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
Quando si tenta di eseguire la query se ricevo il seguente errore
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".
Qualcuno può aiutarmi qui? Non ho mai usato OPENQUERY prima, ma sto di coping l'esempio dritto come è nella documentazione esempio.
Soluzione
Dovrebbe essere come questo
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
Sostituire DatabaseName e SchemaName con il nome effettivo del database e schemaname (probabilmente DBO)
Non è necessario il nome del server collegato all'interno della query
Date un'occhiata al Divertirsi con OPENQUERY e UPDATE, DELETE e INSERT dichiarazioni per alcuni esempi
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow