SQL ServerのリンクサーバーからSelect
開発サーバーに本番DBからマスタデータを持ってきたいという場合は、SQL Server のリンクサーバーを設定すると便利です。
マスターデータを一括で更新したい場合は、こんな感じで書きます。
Management Studio では、赤の波線で警告が出ますが、正しく設定が行われていれば実行されるはずです。
リンクサーバーとは
SQL Server のインスタンス外のサーバーにアクセスしたい場合に設定します。権限を適切に設定しないと接続先のデータもいじれてしまう危険もありますが、テストのために本番DBからデータを持ってきたい場合には特に便利です。リンクサーバーの設定
Management Studio から設定すると便利です。- オブジェクトエクスプローラから、[サーバーオブジェクト] - [リンクサーバー] を開き、右クリックで「新しいリンクサーバー」をクリック。
- リンクサーバーの設定画面が出るので、リンクサーバーのインスタンス(名前、IPなど)を指定する。サーバーの種類は接続したいインスタンスのものを選択。インストールされたプロバイダーが選べるので、Oracle 等の場合は事前にインストールしておく。
- セキュリティで、接続先インスタンスのユーザーを設定する。ローカルログインは、現在ログインしているインスタンスを選択。
リンクサーバーからの 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 では、赤の波線で警告が出ますが、正しく設定が行われていれば実行されるはずです。