2009-06-30 12 views

答えて

171

dboはSQL Serverの既定のスキーマです。独自のスキーマを作成して、オブジェクトの名前空間をよりうまく管理できるようにすることができます。

+20

ベストプラクティスとして、私は常に "dbo"を追加します。接頭辞は必要ではないにもかかわらず。ほとんどの場合、SQLでは明示的にするのが良いです。 – SurroundedByFish

+2

@SurroundedByFish:おそらくベストプラクティスではありませんが、私はSQLの専門家ではないので間違っている可能性があります。 http://stackoverflow.com/a/769639/602245 – Brett

+12

[この記事](http://www.sqlteam.com/article/understanding-the-difference-between-owners-and-schemas-in-sql-server )は、[別の回答](http://stackoverflow.com/a/10118197/39396)から、実際にはベストプラクティスであると主張しています。「コードは完全修飾名を使用する必要はありませんが、パフォーマンスを向上させ、ベストプラクティスとみなしています」 –

69

Sql Server Management Studioを使用している場合は、データベース - データベース - セキュリティ - スキーマを参照して独自のスキーマを作成できます。スクリプトを使用して作成するには

(例えば)と同じくらい簡単です:

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo] 

あなたは「金融」情報とのために別のためschamaを作成することにより、例えば、論理的にグループにテーブルにそれらを使用することができます"個人データ。

Financial.BankAccounts Financial.Transactions Personal.Address

ではなくDBOのデフォルトのスキーマを使用して:あなたのテーブルは、次にとして表示していました。

+0

Entityフレームワークを使用するときに問題が発生するかどうかは分かりますか? – batmaci

+4

Entity Frameworkでスキーマを使用することができます。 - [Table( "Customer"、Schema = "MySchema")] ' – Fenton

+0

'AUTHORIZATION [dbo]'は、スキーマ、またはユーザーに権限を与える必要がありますか? –

16

SQL 2005には新しく、オブジェクトをグループ化するための簡単な方法が用意されています。特に、その「グループ」内のオブジェクトを保護するためです。

次のリンクは、それが何であるかに関して、深さの説明により提供しています、なぜ我々はそれを使用します。

Understanding the Difference between Owners and Schemas in SQL Server

関連する問題