SQL Azure ですが、SQL Server からリンクサーバーとして使用することも可能です。
今日はこの設定についてまとめていきたいと思います。
技術情報としては以下に記載されています。
Linked Servers to SQL Azure
■SQL Server 2008 R2 に SQL Azure をリンクサーバーとして登録
SQL Azure は SQL Server をベースとしています。
試しにサーバーの種類を [SQL Server] として設定してみるとどうなるでしょう。
# ログインは [ログイン名@サーバー名] の形式で設定する必要があります。
リンクサーバーとして登録はできるのですが、テーブルを確認することができません。
クエリを実行しても同様のエラーが発生してしまい、リンクサーバーにクエリを実行することができません。
SQL Azure に対して接続をする際には [データベースを指定] する必要があります。
SQL Server をリンクサーバーとして指定した場合は、データベースを指定することができません。
では、どうやってリンクサーバーを使用するかというと、ODBC を使用したリンクサーバーとして設定をすることで、SQL Azure をリンクサーバーとして使用することが可能となります。
- [管理ツール] → [データ ソース (ODBC)] をクリックします。
- [システム DSN] を [追加] をクリックします。
- [SQL Server Native Client 10.0] を選択して、[完了] をクリックします。
- データソース名とサーバーを入力して、[次へ] をクリックします。
- ログイン名 (ログイン名@サーバー名) とパスワードを入力して、[次へ] をクリックします。
- [既定のデータベースを以下に変更する] からユーザーデータベースを選択して、[次へ] をクリックします。
- [完了] をクリックします。
- [データ ソースのテスト] をクリックして、接続できるかを確認し、[OK] をクリックします。
以上で ODBC の設定は完了です。
後は作成した ODBC を使用してリンクサーバーを作成します。
設定としては以下のようになります。
以上で設定は完了です。
リンクサーバーとして登録された SQL Azure のサーバーからテーブルの情報を取得することが可能です。
オンプレミスの SQL Server 2008 R2 に接続をして、SQL Azure に対してクエリを発行することも可能となります。
リンクサーバーとして登録することで、オンプレミスの SQL Server や SQL Azure のデータベース間でジョインした検索も可能となります。
# 通常、SQL Azure では、同一サーバー上の他のデータベース間でのジョインはできないのですがリンクサーバー経由だと可能となります。
ただし、かなりレスポンスが出ないですが…。
実際に使うシチュエーションがあるかはわからないですが、ひとまず設定方法のメモとして。