公式アカウントからの投稿が始まります

SQL Server2008のクエリの書式に関する質問です。

異なるテーブルを結合をする際の列名は、以下のようにピリオドを使って表現します。

<テーブル名>.<列名>

これは、皆さん当然のように使われていると思います。


ここから質問ですが・・・。

異なるデータベースのテーブルを結合させる場合は、どうすればよいですか?

<データベース名>.<テーブル名>.<列名>とするのでしょうか?(やってみたが、うまくいかなかったような気が・・・。)

そもそも、異なるデータベース間では、テーブル結合できないのでしょうか?

ご指導よろしくお願いいたします。

A 回答 (2件)

> <データベース名>.<テーブル名>.<列名>



ではなく以下です。
<データベース名>.<スキーマ名>.<Table名>.<列名>
スキーマ名が抜けてます。スキーマ名はデフォルトだとdboです。
※自データベース内かつデフォルトだと<データベース名>.<スキーマ名>が省略可能。

あと、SQLを発行しているユーザ(ログイン)は異なるデータベースを参照可能ですか?
権限がないと参照できませんのでログインのプロパティからサーバロールとユーザマッピングを調べてください。
    • good
    • 0
この回答へのお礼

ありがとうございます
大変勉強になりました

スキーマ名ってのがあるのですね。

dbo を入れると無事動作しました

お礼日時:2011/07/19 19:06

参照URLによると、<データベース名>.<スキーマ名>.<テーブル名>.<列名>と記述すればよさそうに思われます。



例えば下記のように記述してみたらどうでしょうか。

(1)hogedb.dbo.table1.column1

(2)hogedb..table1.column1

参考URL:http://msdn.microsoft.com/ja-jp/library/ms177563 …
    • good
    • 0
この回答へのお礼

ありがとうございます

(1)を試すと無事動作しました

スキーマ名 dbo のキーワードで勉強します

お礼日時:2011/07/19 19:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!