Sdílet prostřednictvím


64 ビットSQL Server から SQL Server 2000 へのリンクサーバー設定について

 

皆さんこんにちは。 SQL Server/SQL Database サポートを担当しております 高原 です。 今回は、SQL Server に関するお問い合わせの中で、よくあるお問い合わせの一つを紹介したいと思います。

64 ビット SQL Server (2005/2008/2008R2) 環境から SQL Server 2000 環境へのリンクサーバー設定を実施後、リンクサーバー経由でクエリを実行すると、以下のようなエラーに直面する場合があります。

---

メッセージ 7311、レベル 16、状態 2、行 1

リンク サーバー "*********" の OLE DB プロバイダー "SQLNCLI10" のスキーマ行セット "DBSCHEMA_TABLES_INFO" を取得できません。

---

このエラーは、SQL Server 2005/2008/2008R2 の64ビット環境から、SQL Server 2000 環境に対してリンクサーバーを使用する場合、64ビット環境からのリンクサーバー用のシステムストアドプロシージャを事前に作成する必要があるのですが、事前に作成されていない場合に発生しうるエラーとなります。

そのため、64ビット環境からのリンクサーバー用のシステムストアドプロシージャを作成することにより、このエラーは解消することができます。詳細な対処方法を以下に記載します。

 

[対処方法]

1. SQL Server 2000 に Service Pack 4 を適用します。

2. SQL Server 2000 のインストールフォルダ (既定: C:\Program Files\Microsoft SQL Server\MSSQL\Install) 配下より、スクリプト "instcat.sql" を検索します。

3. SQL Server 2000 のMaster データベースに対して、スクリプト "instcat.sql" を実行します。

4. "instcat.sql completed successfully" というメッセージが出力され、コマンドが正常に完了したことを確認します。

※ スクリプト "instcat.sql" 実行時、以下のようなメッセージが出力される場合がございますが、以下のメッセージは無視下さい。

---

存在しないオブジェクト 'sp_ddopen' に依存しているので、現在のストアドプロシージャで sysdepends に行を追加できません。ストアドプロシージャは作成されます。

---

また、最新の SQL Server 2012 にも 64 ビット版はありますが、SQL Server 2012 から SQL Server 2000 に対するリンクサーバーはサポートされておらず、正常に動作させることができません。

尚、SQL Server 2012 から SQL Server 2005/2008/2008R2/2012 へのリンクサーバーは サポートされているため、SQL Server 2012 から SQL Server 2000 に対するリンクサーバーを使用することをご検討されている場合は、SQL Server 2000 のデータベースをSQL Server 2005/2008/2008R2/2012 へ移行することをご検討下さい。

 

 

[参考情報]

SQL Server 2000 は、2013年4月9日 をもって、サポートが終了します。 そのため、現在 SQL Server 2000 をご使用されている方は、計画的に 最新のSQL Server (SQL Server 2008 R2/2012 など) 製品への移行をご検討下さい。

マイクロソフト プロダクト サポート ライフサイクル

https://support.microsoft.com/lifecycle/?p1=2852

 

※ 本Blogの内容は、 2012年8月 現在の内容となっております。

--
Support Engineer
Nobushiro Takahara