2

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 を使用したことはありませんが、例のドキュメントにあるように、例をそのまま使用しています。

4

1 に答える 1

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

DatabaseName と SchemaName を実際のデータベース名とスキーマ名 (おそらく dbo) に置き換えます。

クエリ内にリンク サーバー名は必要ありません。

いくつかの例については、Hating Fun With OPENQUERY And Update,Delete And Insert ステートメントをご覧ください。

于 2010-10-05T13:01:51.537 に答える