データベースをTeradataからSqlServerに変換しています。すべてのテーブルとプロシージャが接頭辞「dbo」で命名されていることに気づきました。(例:「dbo.Table1」)。
変換タスクがはるかに簡単になるため、「dbo」を削除できるかどうか、またどのように削除できるかを知りたいと思います。
データベースをTeradataからSqlServerに変換しています。すべてのテーブルとプロシージャが接頭辞「dbo」で命名されていることに気づきました。(例:「dbo.Table1」)。
変換タスクがはるかに簡単になるため、「dbo」を削除できるかどうか、またどのように削除できるかを知りたいと思います。
dboはスキーマです。必要に応じて、新しいスキーマを指定できます。dboはデフォルトでSQLサーバーです。
dbo
テーブル名の一部ではありません。これは、テーブルとストアドプロシージャがアタッチされているスキーマの名前です。dbo
はSQLサーバーのデフォルトスキーマですが、必要に応じて他のスキーマを追加できます。
それらについては、このMSDNの記事を参照してください。
すべてのテーブルはスキーマに入る必要があります。durilaiが言うように、dboはSQL Serverの「デフォルト」スキーマです(常に存在します)。ただし、ユーザーが異なれば、デフォルトのスキーマも異なる可能性があることに注意してください(複数存在する場合)。
スキーマを指定せずにテーブルを参照すると、SQL Serverはデフォルトのスキーマでそのテーブルを検索します(他のオブジェクトについても同じことが言えます)。
したがって、デフォルトのスキーマがdboの場合、次の2つのステートメントは同等です。
select * from Table1
select * from dbo.Table1
ユーザーがスキーマを設定していない場合、dboはSQL Serverのデフォルトのスキーマです。必要に応じて、新しいスキーマを作成し、それにテーブルを作成できます。
スキーマは便利です。たとえば、以前はすべてのストアドプロシージャに個別にアプリのログイン実行権限を付与していました。次に、すべてのストアドプロシージャを含むスキーマにアプリのログイン実行権限を付与します。これははるかに簡単です。