2010-11-25 23 views
1

私はSQL Serverでビューを持っていますが、MY_VIEWと言うことができます。クエリでdboを使用してテーブル名またはビュー名を修飾する場合

私はコマンドSELECT * FROM MY_VIEWを実行すると問題なく動作します。しかし、 SELECT * FROM dbo.MY_VIEWとして実行すると、無効なオブジェクト名「MyDB.dbo.MY_VIEW」*

saを使用してSQLサーバーに接続しています。

この問題は何ですか?いつdbo.MY_VIEWを使用する必要がありますか?

更新:ビューのスキーマ名はdboです。ビューを作成したときも、私はsaと接続していました。

更新2大文字と小文字を区別した照合が問題であることがわかりました。問題はdboのためではありませんでした。接頭辞。これは、データベース照合で大文字と小文字が区別され、クエリのテーブル名が間違っているためです。

+0

これを試してみてください:TABLE_NAME = 'MY_VIEW' –

答えて

0

大文字と小文字を区別する照合が問題であることがわかりました。問題はdboのためではありませんでした。接頭辞。これは、データベース照合で大文字と小文字が区別され、クエリのテーブル名が間違っているためです。

1

オブジェクトをdboとは異なるスキーマ名で作成しましたか?ビューを作成したときにその資格を与えなかった場合は、ユーザーアカウントの既定のスキーマ名によって異なります。 SQL 2k5と2k8では、デフォルトの動作は各ユーザーのために新しいスキーマを作成し、それを 'dbo'スキーマに割り当てることだと思います。

+0

は、スキーマ名がDBOであると私はSAを使用して接続されていた、それを作成中INFORMATION_SCHEMA.VIEWS FROM TABLE_CATALOG、TABLE_SCHEMA を選択します。 –

1

あなたはマスターデータベースに属しています。マスターデータベースにビューを作成しました。実際のクエリはSELECT * FROM MyDB.dbo.MY_VIEWでした。代わりにMyDBデータベースにビューを作成してみてください。

関連する問題