Чому імена таблиць у 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.