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 では、赤の波線で警告が出ますが、正しく設定が行われていれば実行されるはずです。

このブログの人気の投稿

Excel で入力した文字に勝手に取り消し線が入る

コピーした行の挿入が表示されない時はフィルタされていないかチェック