元の KB 番号: 2555855
Summary
この記事では、Microsoft SQL Server において、linked servers や OPENROWSET、OPENDATASOURCE を使用して 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のアーキテクチャと一致することを確認します。
インストール されている OLE DB プロバイダーまたはドライバーの確認から、リンク サーバーで必要なプロバイダーがプロバイダーの一覧に存在するかどうかを確認します。
プロバイダーが見つからない場合は、インストールします。
- Microsoft SQL Server 用の OLE DB ドライバー (MSOLEDBSQL) 用: 最新バージョンは Microsoft OLE DB ドライバーのダウンロードページ からダウンロードしてください。
- サード パーティのプロバイダーまたはドライバーの場合: 正しいインストーラーを入手するには、ベンダーに問い合わせてください。
プロバイダーのバージョンがSQL Serverアーキテクチャと一致していることを確認します。 たとえば、64 ビット SQL Server インスタンスの 64 ビット プロバイダーをインストールします。
プロバイダーを確認するその他の方法については、 OLE DB ドライバーのインストール チェックを参照してください。
OLE DB プロバイダーを登録する
プロバイダー DLL がディスク上に存在するが、登録されていない場合は、「プロバイダーまたはドライバーのインストールを確認する」の手順を使用して 、プロバイダーまたはドライバーを再インストールします。 再インストールすると、DLL が正しく登録されます。
プロバイダーの接続を確認する
ユニバーサル データ リンク (UDL) ファイルを使用して、OLE DB プロバイダーがターゲット データ ソースに接続できることを確認します。
- 新しい .udl テスト ファイルを作成します。
- .udl ファイルをダブルクリックして、[データ リンクのプロパティ] ダイアログを開きます。
- [ プロバイダー ] タブを選択し、一覧から OLE DB プロバイダーを選択します。
- [ 接続 ] タブで、サーバー名と認証の詳細を入力します。
- [ テスト接続] を選択して接続を確認します。
詳細な手順については、「 UDL ファイルを使用したSQL SERVERへの OLE DB 接続のテストを参照してください。
関連するコンテンツ
- リンク サーバー (SQL Server Database Engine) を作成する
- OLE DB Driver for SQL Server
- sp_addlinkedsrvlogin (Transact-SQL)
サードパーティの情報に関する免責事項
この記事で説明するサードパーティ製品は、Microsoftに依存しない企業によって製造されています。 Microsoftは、これらの製品の性能または信頼性について、黙示的またはその他の方法で何の保証も行いません。