- ベストアンサー
異なる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を 作成することは可能なのでしょうか? 可能であればその方法を教えてください。
- みんなの回答 (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 に詳しく書かれていると思います。
その他の回答 (2)
- TrickOrTreat
- ベストアンサー率42% (53/126)
DBの名前を from に含めます。 select * from db1.xxx.a_tbl a, db2.xxx.b_tbl b where a.key = b.key VIEW でも同じようにDB名からのテーブル名を 使えば大丈夫です。 まずはリファレンスマニュアルをしらべてみよう。 製品にCD-ROMで付属しています。 なければダウンロードもできます。
お礼
マニュアルがダウンロードできるの知りませんでした。。 ありがとうございます。 DBサーバーが異なる場合の記述がcreate viewの説明欄には見当たらなかったのですが、ご存知でしたらキーワードだけでも教えていただけないでしょうか。
こっち↓の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
補足
もう少し待とうと思っていたのですが締め切りました。 書き込みありがとうございました。
お礼
ありがとうございました。