Почему имена таблиц в SQL Server начинаются с «dbo»?


Ответы:


234

dbo - это схема по умолчанию в SQL Server. Вы можете создавать свои собственные схемы, чтобы лучше управлять пространством имен вашего объекта.


22
В качестве лучшей практики я всегда добавляю «dbo». префикс, хотя это и не обязательно. В большинстве случаев в SQL хорошо быть явным.
— SurroundByFish

3
@SuroundedByFish: Возможно, не лучшая практика, но я могу ошибаться, поскольку я не эксперт по SQL. stackoverflow.com/a/769639/602245
— Бретт

13
В этой статье из другого ответа утверждается, что на самом деле это лучшая практика: «Код не должен использовать полностью определенное имя, хотя при этом наблюдается небольшой выигрыш в производительности, и это считается лучшей практикой».
— Карл Дж.

7
Кроме того, ответ, который вы связали, также рекомендует включать «dbo». так что оптимизатору не нужно искать схему.
— Карл Дж

7
ДБО не очень хорошая практика. Создайте свою собственную схему и всегда используйте ее. dbo существует только уловка миграции, поэтому pre-SQL Server 2005 продолжает работать. Да, всегда используйте схему для перфорации. Нет, не миграционный (например, dbo).
— Дэвид Бец

85

Если вы используете Sql Server Management Studio, вы можете создать собственную схему, выбрав Базы данных - Ваша база данных - Безопасность - Схемы.

Создать его с помощью скрипта так же просто, как (например):

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

Вы можете использовать их для логической группировки таблиц, например, путем создания схемы для «финансовой» информации и другой для «личных» данных. Ваши таблицы будут отображаться как:

Financial.BankAccounts Financial.Transactions Personal.Address

Вместо того, чтобы использовать схему по умолчанию dbo.


Знаете ли вы, если это вызывает какие-либо проблемы, когда мы используем Entity Framework?
— Батмачи

6
Вы можете использовать схемы с Entity Framework - даже с первым кодом, если хотите:[Table("Customer", Schema = "MySchema")]
— Fenton

Предоставляет ли AUTHORIZATION [dbo] те же разрешения, что и dbo для схемы, или мне все еще нужно предоставлять разрешения пользователям?
— Марк Микаллеф

21

Он является новым для SQL 2005 и предлагает упрощенный способ группировки объектов, особенно в целях защиты объектов в этой «группе».

Следующая ссылка предлагает более глубокое объяснение того, что это такое, почему мы будем его использовать:

Понимание различий между владельцами и схемами в SQL Server

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.