2台のサーバー間でのテーブル結合方法

このQ&Aのポイント
  • 2台のサーバーでSQL Server2000とSQL Server2005を使用しています。2台のサーバーの別のDBのテーブルを結合したいです。
  • データベース名1のサーバーに接続した状態で、[データベース名1].[dbo].[テーブル名1]と[ServerIPアドレス].[データベース名2].[dbo].[テーブル名2]を結合するとエラーが発生します。
  • 正しいサーバー名を指定しているか、ストアドプロシージャ sp_addlinkedserverを実行してサーバーを追加してください。
回答を見る
  • ベストアンサー

2台のサーバー間でのテーブル結合方法

2台のサーバーでそれぞれSQL Server2000 とSQL Server2005を動かしています。 2台のサーバーの中の別のDBの中にあるテーブルを結合したいのですが、可能なのでしょうか? ちなみに [データベース名1]のサーバーに接続した状態で SELECT a.*,b.* FROM [データベース名1].[dbo].[テーブル名1] AS a INNER JOIN [ServerIPアドレス].[データベース名2].[dbo].[テーブル名2] AS b ON a.ID=b.ID とやると 「sys.serversにサーバー 'ServerIPアドレス' が見つかりませんでした。 正しいサーバー名を指定したかどうかを確認してください。 必要であればストアド プロシージャ sp_addlinkedserver を実行し、 サーバーを sys.servers に追加してください。」 というエラーになってします。 宜しくお願いします。

  • skm58
  • お礼率60% (3/5)

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

「リンクサーバー」を設定します。 http://msdn2.microsoft.com/ja-jp/library/ms188279.aspx 設定すれば SELECT a.*,b.* FROM [データベース名1].[dbo].[テーブル名1] AS a INNER JOIN [リンクサーバー名].[データベース名2].[dbo].[テーブル名2] AS b ON a.ID=b.ID と書けます。

skm58
質問者

お礼

御回答有難う御座います。 思ったとおりに出来ました! 有難う御座いました。

関連するQ&A

  • SQLサーバでテーブルをコピーする

    SQLサーバ超初心者です。 A支店用のテーブルを作成(dbo.data_A)したのですが B支店(dbo.data_B)、C支店用(dbo.data_C)のテーブルを作成したいです。 Accessなどのように、コピーペーストなどはできないのですよね? ご教授お願いいたします!

  • 他のDBのテーブルと内部結合が可能でしょうか

    他のDBのテーブルと内部結合が可能でしょうか sql sever 2005 を使用します。このたび、データベースAのテーブルaを定期的に検索するsqlを作成することになりました。このsql文は、ストアードプロシージャとして登録予定です。 その際、テーブルbを内部結合で参照します。例として、テーブルaは社員番号があり、テーブルbは社員番号、社員名があります。(テーブルbは社員マスター) テーブルaを参照し、その社員名を内部結合(INNER JOIN)で取り出します。 ここで、テーブルa,bが共に、同じデータベース内にある場合は、問題ないのですが、 テーブルbは、別のマシンのsql sever 上にあります。(したがって、データベース名も異なります) このような状態で、内部結合による参照は可能でしょうか? また、内部結合ができないまでも、ストアードプロシージャで、データベースAのテーブルaを参照しながら、別のマシンのデータベースBのテーブルbを参照することは、原理的に可能でしょうか。 なお、データベースは共にsql server 2005を使用します。

  • 異なるサーバーのテーブルを結合する方法

    SSIS初心者です。 SSISで異なるサーバーのテーブルを結合する方法を教えて頂きたいです。 環境のイメージとしては サーバー1のテーブルAと サーバー2のテーブルBを結合して サーバー2のテーブルCに登録処理を行いたいです。 二つのDBはスキーマ名、ログインID、パスワードが全て異なります。 ご教示頂けましたら、助かります。 宜しくお願い致します。

  • 別のデータベースのテーブルの統合 No.2

    SQL Server 2005 Express で、別のデータベースへのテーブルの移行するにあたり、 INSERT INTO データベースB.dbo.テーブルX SELECT * FROM データベースA.dbo.テーブルX とすればよいというご回答をいただいています。 で、 IDENTITYを設定しているテーブルがあるとちょっと工夫が必要です。 とのコメントをもいただきましたが、 この「工夫」が分かりません。 どんな方法なのでしょうか? IDENTITYをはずす方法や、リレーションシップをはずす方法などが思い浮かぶのですが、テーブル構造が複雑で、わけがわからなくなります。 元のIDの値は維持しなくてもよいので、何かよい方法はありますでしょうか? よろしくお願いします。

  • 他のデータベースとのテーブル結合

    いつもお世話になっております。 VB.netでwindowsアプリケーションの作成しているところです。 SQLサーバーのテーブルを参照していますが、テーブルの結合は同じデータベース内にないと結合できないのでしょうか? 'SQL接続処理 Dim strConn As String = "Password='';User ID=sa;Initial Catalog=test;Data Source=server1" と、testというデータベースがありその中に幾つかテーブルがあります。 このtestデータベースにないテーブルが必要になり、aaaデータベース内の テーブルを結合しようとしたのですが、出来ません。 Catalog=test,aaaとやってみたり、SELECT * FROM tbl1,aaa.tbl2などとしてみましたが、遠いようです。 SQLのクエリを使って、テーブルの追加をすると同じデータベース内のテーブルしか出てこないので、出来ないのかなと思っていますがどうでしょうか? わかる方がいましたら教えてください。

  • テーブルの結合について

    お世話になります。 ACCESSで、以下のテーブル(1)をベースにテーブル(2)をUNIONさせ、テーブル(3)の様に作成したいです。 どのような方法で実現できるのでしょうか? テーブル(1) id ,pass,biko 001,1234, a 002, 0, 0 003, 0, 0 004, 0, 0 005, 0, 0 テーブル(2) id ,pass,biko 002,2345, b 003,3456, c 004,4567, d 005,5678, e テーブル(3) id ,pass,biko 001,1234, a 002,2345, b 003,3456, c 004,4567, d 005,5678, e また、テーブル(3)をSQL Serverにも同一のものをコピーしたいのですが どの様にすればいいでしょうか? ODBC接続は出来ております。 お手数ではありますが、ご回答をお待ちしております。

  • SQLサーバーのテーブルの値が更新できません

    お尋ねします。 SQLサーバー2005にDB1というデータベースにdbo_TB1というテーブルがあります。そのテーブルの特定の列の値を更新したいので、AC.mdbというアクセスのファイルにテーブルのリンクをし、更新したいファイルを用意して、アクセスのクエリでデータを更新しようとしましたところ、更新ができませんでした。  dbo_TB1を更新可能にするためには、どのようにして権限を与えればいいでしょうか。  SQLサーバー2005の知識を習得しようと学習を始めたばかりで、よく理解できていません。よろしくお願いします。

  • T-SQLで一時テーブルの名前を毎回変更できるストアドを作りたい

    お世話になります。 初歩的な質問で恐縮ですがご教示いただければ幸いです。 T-SQLでグローバル一時テーブルの名前を毎回変更できるストアドを作り、Access2003アプリから実行させる予定です。 ストアドに、CREATE TABLE [dbo].[@tablename]のように書き、 ストアド実行時に@tablenameの値を ##ABC のように入力したのですが、テーブルはtempdbではなく、しかもテーブル名は@tablenameでテーブルが作成されてしまいます。 CREATE TABLE [dbo].@tablename のように[]をとると ストアド自体を作成できずエラーになってしまいます。 宜しくお願いします。 create PROCEDURE [dbo].[ストアドプロシージャー名] (@tablename nvarchar(255)) AS BEGIN from SET NOCOUNT ON; CREATE TABLE [dbo].[@tablename] <以下省略>

  • 2つのテーブル結合

    Oracle10g使用しています。 テーブルAとテーブルBを結合させてデータを取得したいと思っています。 [テーブルA] ID name 1 A 2 B 3 C 4 D [テーブルB] ID SEQ VALUE 1 1 111 2 1 222 2 2 333 3 1 444 4 1 555 4 2 666 4 3 777 テーブルAのキーは[ID]、テーブルBのキーは[ID,SEQ]です。 この二つを連結して以下のように出力したいと思っています。 ID SEQ NAME VALUE 1 1 A 111 2 2 B 333 3 1 C 444 4 3 D 777 テーブルBのデータは同じIDのうち最大のSEQのものを取得したいのですが よいSQLが思いつきません。 よい方法があればご教授ください。 よろしくお願いいたします。

  • テーブルを結合

    テーブルの結合に関して質問します。 ネットなどでinner joinを使った複数のテーブル結合が参考として 書いてあったのですが(3つまで), 4つテーブルを結合する事は 出来るのでしょうか? A,B,CテーブルにはID,NAMEがあります。 DテーブルにはA,B,CテーブルのIDがあります。 参考サイトを見て3つのテーブルを結合するSQLが以下になります。 SELECT a.name, b.name, c.name FROM a INNER JOIN (b INNER JOIN c ON b.id = c.id) ON a.id = c.id よろしければアドバイスお願いします。