1

SQL Server にビューがあります。MY_VIEW としましょう。

コマンドを実行すると正常SELECT * FROM MY_VIEWに動作します。ただし、 SELECT * FROM dbo.MY_VIEW* Invalid object name 'MyDB.dbo.MY_VIEW'* を取得して実行すると、

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

これの何が問題なのですか?また、いつ dbo.MY_VIEW を使用する必要があり、いつ使用しないのでしょうか?

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

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

4

3 に答える 3

1

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

于 2010-11-25T14:41:59.997 に答える
1

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

于 2010-11-25T13:08:46.323 に答える
0

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

于 2010-12-29T07:30:04.830 に答える