• 検索結果がありません。

OPENROWSET 関数では、毎回クエリの実行時にプロバ゗ダ名や接続パスを記述する必要がある ので、何度もクエリを実行する場合には面倒です。これを解決してくれる機能が「リンク サーバ ー」です。リンク サーバーを利用すると、何度もゕクセスするリモート データ(接続先)に対し て、名前を付けて保存しておくことができます。

Let's Try

それでは、これを試してみましょう。ここでは、Access 2003 データベースの Northwind サン プル データベース(Northwind.mdb)に対して、リンク サーバーを作成する手順を試してみ ましょう。

1. リンク サーバーを作成するには、まず Management Studio のオブジェクト エクスプロー ラで[サーバー オブジェクト]を展開し、[リンク サーバー]フォルダを右クリックして[新 しいリンク サーバー]をクリックします。

これにより、[新しいリンク サーバー]ダ゗ゕログが表示されるので、[リンク サーバー]へ 任意の名前(今回は、NW)を入力します。

次に、[サーバーの種類]で「その他のデータ ソース」を選択して、[プロバ゗ダ]で

1

1

2

「Microsoft.Jet 4.0 OLEDB Provider」を選択します。[製品名]へは、任意の文字(ここ では Access 2003)を入力し、[データソース]へ Access データベース(.mdb フゔ゗ル)

へのパスを入力します(ここでは、C:\Program Files\Microsoft Office\OFFICE11\

SAMPLES\Northwind.mdb)。

設定後、[OK]ボタンをクリックすれば、リンク サーバーの作成が完了です。

Note: [製品名]や[プロバイダ文字列]の設定

リンク サーバーの設定画面の、データソースに対する[プロバイダ]や[製品名](product_name)、[プロバイ ダ文字列](provider_string)については、SQL Server オンラ゗ン ブックの Transact-SQL リフゔレンスにあ る「sp_addlikedserver」で詳しく解説されています。

2. 作成したリンク サーバーを次のように展開すると、Access データベース内のテーブルの一 覧を参照することができます。

1

プロバ゗ダ名 や製品名

1

3. 次に、作成したリンク サーバー「NW」を利用して、「社員」テーブルのデータを参照してみ ましょう。

SELECT * FROM NW...社員

リンクサーバーでは、「リンクサーバー名.データベース名.スキーマ名.テーブル名」という構 文でテーブルへゕクセスできますが、Access の場合は、リンクサーバー自体がデータベース なので、データベース名を省略しています。また、Access にはスキーマも存在しないので、

これも省略して、「NW...社員」と記述しています。

このようにリンク サーバー機能を利用すると、OPENROWSET 関数のように、毎回プロバ゗

ダを指定したり、接続パスを欠かなくて済むようになるので、大変便利です。

Note: コマンドでリンクサーバーを作成する: sp_addlinkedserver

リンクサーバーは、sp_addlinkedserver システム ストゕド プロシージャを利用して、コマンドで作成すること も可能です。これは、次のように利用します。

EXEC master..sp_addlinkedserver @server = N'NW'

, @srvproduct=N'Access 2003'

, @provider=N'Microsoft.Jet.OLEDB.4.0'

, @datasrc=N'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb'

■ スクリプト生成機能

GUI ベースで作成したリンクサーバーは、次のようにスクリプト生成機能を利用して、sp_addlinkedserver を自 動生成できるので、便利です。

1

sp_addlinkedserver が自動生成される 2

関連したドキュメント