リンク サーバーの OLE DB プロバイダー エラーのトラブルシューティング

元の KB 番号: 2555855

Summary

この記事では、Microsoft SQL Server において、linked serversOPENROWSETOPENDATASOURCE を使用して T-SQL クエリを実行する際に発生する OLE DB プロバイダー エラーを解決する方法をご紹介します。 これらのエラーは、通常、OLE DB プロバイダーがインストールされていない、登録されていない、またはSQL Serverアーキテクチャと一致しないことを示します。

Symptoms

( OPENROWSET または OPENDATASOURCEを使用して) リンク サーバーまたはアドホック クエリを使用する T-SQL クエリを実行すると、次のいずれかのエラー メッセージが表示されることがあります。

OLE DB プロバイダー "<ProviderName>" が登録されていません。 (Microsoft SQL Server、エラー: 7403)

リンク サーバー "<LinkedServerName>" の OLE DB プロバイダー "<ProviderName>" のインスタンスを作成できません。 (Microsoft SQL Server、エラー: 7302)

これらのエラーは、次の後にも発生する可能性があります。

  • SQL Serverをあるコンピューターから別のコンピューターに移行します。
  • master データベースを別のサーバーから復元します。

原因

SQL Serverは、次のいずれかの理由で、指定された OLE DB プロバイダーを初期化できません。

  • OLE DB プロバイダーまたはドライバーがサーバーにインストールされていません。
  • インストールされているプロバイダーがSQL Serverビット数 (x86 と x64) と一致しません。
  • OLE DB プロバイダーはインストールされていますが、正しく登録されていません。

sp_addlinkedserver を使用してリンク サーバーを作成する場合、SQL Serverはプロバイダーの可用性に関連するエラーを直ちに報告しません。 これらのエラーは、リンク サーバーを使用するクエリを実行する場合にのみ表示されます。

ソリューション

この問題を解決するには、指定された順序で各セクションの手順に従います。

インストールされている OLE DB プロバイダーまたはドライバーを確認する

次のいずれかの方法を使用して、SQL Server インスタンスに登録されている OLE DB プロバイダーまたはドライバーを確認します。

  • SQL Server Management Studio (SSMS)で、 expand Server Objects>Linked Servers>Providers に登録されている OLE DB プロバイダーまたはドライバーの一覧を表示します。

  • 次のクエリを実行して、定義されているすべてのリンク サーバーとそれに関連付けられているプロバイダーまたはドライバーを表示します。

    SELECT * FROM sys.servers;
    

    返される列の詳細については、「sys.servers (Transact-SQL)を参照してください。

プロバイダーまたはドライバーのインストールを確認する

正しい OLE DB プロバイダーがインストールされ、SQL Serverのアーキテクチャと一致することを確認します。

  1. インストール されている OLE DB プロバイダーまたはドライバーの確認から、リンク サーバーで必要なプロバイダーがプロバイダーの一覧に存在するかどうかを確認します。

  2. プロバイダーが見つからない場合は、インストールします。

    • Microsoft SQL Server 用の OLE DB ドライバー (MSOLEDBSQL) 用: 最新バージョンは Microsoft OLE DB ドライバーのダウンロードページ からダウンロードしてください。
    • サード パーティのプロバイダーまたはドライバーの場合: 正しいインストーラーを入手するには、ベンダーに問い合わせてください。
  3. プロバイダーのバージョンがSQL Serverアーキテクチャと一致していることを確認します。 たとえば、64 ビット SQL Server インスタンスの 64 ビット プロバイダーをインストールします。

プロバイダーを確認するその他の方法については、 OLE DB ドライバーのインストール チェックを参照してください。

OLE DB プロバイダーを登録する

プロバイダー DLL がディスク上に存在するが、登録されていない場合は、「プロバイダーまたはドライバーのインストールを確認する」の手順を使用して 、プロバイダーまたはドライバーを再インストールします。 再インストールすると、DLL が正しく登録されます。

プロバイダーの接続を確認する

ユニバーサル データ リンク (UDL) ファイルを使用して、OLE DB プロバイダーがターゲット データ ソースに接続できることを確認します。

  1. 新しい .udl テスト ファイルを作成します。
  2. .udl ファイルをダブルクリックして、[データ リンクのプロパティ] ダイアログを開きます。
  3. [ プロバイダー ] タブを選択し、一覧から OLE DB プロバイダーを選択します。
  4. [ 接続 ] タブで、サーバー名と認証の詳細を入力します。
  5. [ テスト接続] を選択して接続を確認します。

詳細な手順については、「 UDL ファイルを使用したSQL SERVERへの OLE DB 接続のテストを参照してください。

サードパーティの情報に関する免責事項

この記事で説明するサードパーティ製品は、Microsoftに依存しない企業によって製造されています。 Microsoftは、これらの製品の性能または信頼性について、黙示的またはその他の方法で何の保証も行いません。