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.

È stato utile?

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
scroll top