• ベストアンサー

異なるDB間でのJOINやVIEWについて

Sybaseを使っています。  aaa  bbb の2つのDBを使っています(オーナーはともにxxx)。  DB名aaaには、a_tblが  DB名bbbには、b_tblがあるものとします。 ここで、例えばa_tblを検索したい場合、 use aaa go select * from xxx.a_tbl go で検索結果は得られると思いますが、 b_tblとのJOINを行いたい場合は use bbbの宣言も必要だと思うのですが、どうすれば可能でしょうか? また、あらかじめ、異なるDBにまたがるa_tblとb_tblを結合させたVIEWを 作成することは可能なのでしょうか? 可能であればその方法を教えてください。

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

  • ベストアンサー
回答No.3

異なるサーバーの表でJOINを行うには 「コンポーネント統合サービス」 を使います。Ver11.9 からデフォルトで使えます。 コンポーネント統合サービスを使うと違うサーバのDBが 自分のDBにあるテーブルのように扱えます。 ○パラメータ enable cis を 1 に変更 ○相手サーバを登録(interfaces,sql.ini&sp_addserver) ○こっちのログイン名と相手サーバ上のログイン名を対応させる(sp_addexternlogin) ○プロキシ・テーブルを作成(create existing table) Component Integration Services User's Guide に詳しく書かれていると思います。

yumi-mika
質問者

お礼

ありがとうございました。

その他の回答 (2)

回答No.2

DBの名前を from に含めます。 select * from db1.xxx.a_tbl a, db2.xxx.b_tbl b where a.key = b.key VIEW でも同じようにDB名からのテーブル名を 使えば大丈夫です。 まずはリファレンスマニュアルをしらべてみよう。 製品にCD-ROMで付属しています。 なければダウンロードもできます。

参考URL:
http://sybooks.sybase.com/asg1250j.html
yumi-mika
質問者

お礼

マニュアルがダウンロードできるの知りませんでした。。 ありがとうございます。 DBサーバーが異なる場合の記述がcreate viewの説明欄には見当たらなかったのですが、ご存知でしたらキーワードだけでも教えていただけないでしょうか。

noname#4564
noname#4564
回答No.1

  こっち↓の2つはほったらかしですか? [ トランザクション中に別のトランザクションは開始できますか? ] http://oshiete1.goo.ne.jp/kotaeru.php3?q=496981 [ 凝ったSQL文なのですが・・・ ] http://oshiete1.goo.ne.jp/kotaeru.php3?q=500467 失礼ですが、あなたは人間として社会生活上必要最低限のマナーを身に付ける方が先決です。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=496981,http://oshiete1.goo.ne.jp/kotaeru.php3?q=500467
yumi-mika
質問者

補足

もう少し待とうと思っていたのですが締め切りました。 書き込みありがとうございました。

関連するQ&A