データベースにスキーマを定義しています。今を除き、SQLステートメントを実行するたびに、スキーマを提供する必要があります... SELECT * FROM [myschema].table
Management Studioを使用してユーザーのデフォルトスキーマを設定し、ALTER USER myUser WITH DEFAULT_SCHEMA [myschema]
も実行しましたが、スキーマなしでクエリを作成するときに無効なオブジェクト 'table'を取得します(SELECT * FROMテーブル)
常にスキーマ名を指定せずにSELECT * FROM table
を記述する方法はありますか?
SQL Management Studioを使用したSQL 2005上にあります。
documentationSA
によると、ユーザーはSA
であり、そうでない場合は常にdbo
スキーマにデフォルト設定されます。
ユーザーがsysadmin固定サーバーロールのメンバーである場合、DEFAULT_SCHEMAの値は無視されます。 sysadmin固定サーバーロールのすべてのメンバーには、dboのデフォルトスキーマがあります。
いくつかのオプション:
シノニムを作成 参照するテーブルの場合:
CREATE SYNONYM table_name
FOR [your_db].[your_schema].table_name
...そのデータベースのコンテキストで、少なくとも2つの名前表記を使用していないすべての人に影響します。 詳細はこちら 。ただし、最終的にはスキーマに関連付けられます。
[利用可能なデータベース]ドロップダウン(左上、[実行]ボタンの左側)で選択したデータベースが正しいことを確認します。
テーブル(およびビュー)参照を指定するときは、3つの名前表記法を使用します。
SELECT *
FROM [your_db].[your_schema].table_name