Pergunta

Estou tentando fazer uma consulta via ODBC no nosso banco de dados ERP. O guia de documentação sugere que usamos o OpenQuery para enviar a consulta.

Aqui está minha consulta de exemplo

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 tento executar essa consulta, embora receba o seguinte erro

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".

Alguém pode me ajudar aqui? Eu nunca usei o OpenQuery antes, mas estou lidando com o exemplo reto como está na documentação de exemplo.

Foi útil?

Solução

Deve ser assim

    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

Substitua o nome do banco de dados e o nome do scheman pelo nome do banco de dados e schemaname (provavelmente DBO)

Você não precisa do nome do servidor vinculado dentro da consulta

Dar uma olhada em Divertir -se com o OpenQuery e Atualizar, Excluir e Inserir declarações Para alguns exemplos

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top