こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLServerで別インスタンスのデータベースのテーブルの結合はできますか?

[インスタンスA]
UserID=sa
PassWord=******
DataBase=DB01
で接続されるテーブルDB01.Table1


[インスタンスB]
UserID=HogeUser
PassWord=@@@@@@
DataBase=DB02
で接続されるテーブルDB02.Table2

の2つのテーブルを結合してプログラムから処理を行いたいのですが、
可能なのでしょうか。

SQLのイメージは
select *
from [インスタンスA].[db01].[dbo].[Table1] tbl1
join [インスタンスB].[db02].[dbo].[Table2] tbl2
on tbl1.id=tbl2.id
という感じです(もちろん動作しませんが)

インスタンスAとインスタンスBは同一マシンにあり、SQLServer2008SP1とします。
開発環境はVS2008SP1でSqlClient.SqlConnectionを使用して接続し、
SqlCommandにてSQLを作成し、実行するような形です。

どうかよろしくお願いいたします。

投稿日時 - 2009-10-20 19:44:11

QNo.5382887

困ってます

質問者が選んだベストアンサー

2つのインスタンス間でリンクサーバを設定します。
http://msdn.microsoft.com/ja-jp/library/ms188279.aspx
上記リンクにあるとおり、SSMSで設定可能です。

リンクサーバはSQLを実行するインスタンスに作成します。
例えば、SQLをインスタンスAで実行するならば、インスタンスA側に「インスタンスB」という名前のリンクサーバを設定します。

結果、インスタンスAで実行するクエリは、以下の通りです。

select *
from [db01].[dbo].[Table1] tbl1
join [インスタンスB].[db02].[dbo].[Table2] tbl2
on tbl1.id=tbl2.id

投稿日時 - 2009-10-20 21:07:24

お礼

リンクサーバを作成することで無事できました。
ありがとうございました。

投稿日時 - 2009-10-21 09:46:31

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-