Pages

2016/02/12

SQL ServerのリンクサーバーからSelect

SQL Server のリンクサーバー
開発サーバーに本番DBからマスタデータを持ってきたいという場合は、SQL Server のリンクサーバーを設定すると便利です。


リンクサーバーとは

SQL Server のインスタンス外のサーバーにアクセスしたい場合に設定します。権限を適切に設定しないと接続先のデータもいじれてしまう危険もありますが、テストのために本番DBからデータを持ってきたい場合には特に便利です。

リンクサーバーの設定

SQL Server のリンクサーバー
Management Studio から設定すると便利です。
  1. オブジェクトエクスプローラから、[サーバーオブジェクト] - [リンクサーバー] を開き、右クリックで「新しいリンクサーバー」をクリック。
  2. リンクサーバーの設定画面が出るので、リンクサーバーのインスタンス(名前、IPなど)を指定する。サーバーの種類は接続したいインスタンスのものを選択。インストールされたプロバイダーが選べるので、Oracle 等の場合は事前にインストールしておく。
  3. セキュリティで、接続先インスタンスのユーザーを設定する。ローカルログインは、現在ログインしているインスタンスを選択。

リンクサーバーからの Select

リンクサーバーは、以下のようにアクセスします。

SELECT * FROM [HOGE].TEST.dbo.Members

-- インスタンス名:HOGE
-- データベース:TEST
-- 所有者:dbo
-- テーブル:Members

マスターデータを一括で更新したい場合は、こんな感じで書きます。

USE LOCAL_HOGE
-- 思わぬテーブルを更新してしまう事故には気をつけます。

DELETE FROM Members
INSERT INTO Members
SELECT * FROM [HOGE].TEST.dbo.Members

Management Studio では、赤の波線で警告が出ますが、正しく設定が行われていれば実行されるはずです。
Related Posts Plugin for WordPress, Blogger...