- ベストアンサー
SQL Server2008のクエリの書式に関する
SQL Server2008のクエリの書式に関する質問です。 異なるテーブルを結合をする際の列名は、以下のようにピリオドを使って表現します。 <テーブル名>.<列名> これは、皆さん当然のように使われていると思います。 ここから質問ですが・・・。 異なるデータベースのテーブルを結合させる場合は、どうすればよいですか? <データベース名>.<テーブル名>.<列名>とするのでしょうか?(やってみたが、うまくいかなかったような気が・・・。) そもそも、異なるデータベース間では、テーブル結合できないのでしょうか? ご指導よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> <データベース名>.<テーブル名>.<列名> ではなく以下です。 <データベース名>.<スキーマ名>.<Table名>.<列名> スキーマ名が抜けてます。スキーマ名はデフォルトだとdboです。 ※自データベース内かつデフォルトだと<データベース名>.<スキーマ名>が省略可能。 あと、SQLを発行しているユーザ(ログイン)は異なるデータベースを参照可能ですか? 権限がないと参照できませんのでログインのプロパティからサーバロールとユーザマッピングを調べてください。
その他の回答 (1)
- xKENx
- ベストアンサー率65% (21/32)
回答No.1
参照URLによると、<データベース名>.<スキーマ名>.<テーブル名>.<列名>と記述すればよさそうに思われます。 例えば下記のように記述してみたらどうでしょうか。 (1)hogedb.dbo.table1.column1 (2)hogedb..table1.column1
質問者
お礼
ありがとうございます (1)を試すと無事動作しました スキーマ名 dbo のキーワードで勉強します
お礼
ありがとうございます 大変勉強になりました スキーマ名ってのがあるのですね。 dbo を入れると無事動作しました