クエリでテーブルを適格にするか、DBOで名前を表示するのはいつですか?
-
28-09-2019 - |
質問
SQL Serverでビューがあります。My_Viewとしましょう。
コマンドを実行するとき SELECT * FROM MY_VIEW
正常に動作します。しかし、私がそれを実行するときSELECT * FROM dbo.MY_VIEW
私は *無効なオブジェクト名 'mydb.dbo.my_view' *を取得します
SAを使用してSQL Serverに接続しています。
これの何が問題になっていますか?そして、いつdbo.my_viewを使用する必要がありますか?
アップデート: ビューのスキーマ名はDBOで、ビューを作成したとき、SAに接続していました。
update2 問題はケースに敏感な照合であることがわかりました。問題は、DBOのためではありませんでした。プレフィックス。それは、データベースの照合がケースに敏感であり、クエリのテーブル名が間違った場合だったためです。
解決 3
問題はケースに敏感な照合であることがわかりました。問題は、DBOのためではありませんでした。プレフィックス。それは、データベースの照合がケースに敏感であり、クエリのテーブル名が間違った場合だったためです。
他のヒント
DBOとは別のスキーマ名でオブジェクトを作成しましたか?ビューを作成したときに資格を持っていなかった場合、ユーザーアカウントのデフォルトスキーマ名に依存します。 SQL 2K5および2K8では、デフォルトの動作は、各ユーザーとそれらを「DBO」スキーマに割り当てる新しいスキーマを作成することだと思います。
あなたはマスターデータベースにいます。マスターデータベースにビューを作成しました。あなたの実際のクエリはそうでした SELECT * FROM MyDB.dbo.MY_VIEW
. 。代わりにMyDBデータベースでビューを作成してみてください。