Чому імена таблиць у SQL Server починаються з "dbo"?


Відповіді:


233

dbo - схема за замовчуванням у SQL Server. Ви можете створити власні схеми, які дозволять вам краще керувати простором імен об’єктів.


22
Як найкраща практика, я завжди додаю "dbo". префікс, хоча це не обов'язково. Більшу частину часу в SQL добре бути явним.
ОточенийByFish

3
@SurroundedByFish: Можливо, це не найкраща практика, але я можу помилитися, оскільки я не експерт SQL. stackoverflow.com/a/769639/602245
Бретт

13
Ця стаття з іншої відповіді стверджує, що насправді це найкраща практика: "Код не повинен використовувати повноцінне ім'я, хоча при цьому є невеликий приріст продуктивності при цьому і вважається найкращою практикою"
Карл Г

7
Також відповідь, яку ви пов’язали, також рекомендує включити "dbo". так що оптимізатору не потрібно шукати схему.
Карл Г

7
dbo не є хорошою практикою. Створіть власну схему і завжди використовуйте її. dbo існує лише трюк міграції, тому Pre-SQL Server 2005 продовжує працювати. Так, завжди використовуйте схему для perf. Ні, не міграція (наприклад, dbo).
Девід Бетц

85

Якщо ви використовуєте Sql Server Management Studio, ви можете створити власну схему, переглянувши Бази даних - Ваша база даних - Безпека - Схеми.

Створити його за допомогою сценарію так само просто, як (наприклад):

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

Ви можете використовувати їх для логічного групування ваших таблиць, наприклад, створивши схему для "Фінансової" інформації та іншої для "Особистих" даних. Потім ваші таблиці відображатимуться як:

Financial.BankAccs Financial.Transaction Personal.Address

Замість використання схеми за замовчуванням dbo.


Чи знаєте ви, чи це викликає якісь проблеми, коли ми використовуємо Entity Framework?
batmaci

6
Ви можете використовувати схеми з Entity Framework - навіть з кодом спочатку, якщо вам подобається:[Table("Customer", Schema = "MySchema")]
Fenton

Чи надає "АВТОРИЗАЦІЯ [dbo]" ті ж дозволи, що й dbo на схемі, чи мені все ж потрібно надавати дозволи користувачам?
Марк Мікаллеф

21

Він новий у SQL 2005 і пропонує спрощений спосіб групування об’єктів, особливо з метою закріплення об'єктів у цій "групі".

Наступне посилання пропонує більш глибоке пояснення того, що це таке, для чого ми б його використовували:

Розуміння різниці між власниками та схемами в SQL Server

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.