Dlaczego nazwy tabel w SQL Server zaczynają się od „dbo”?


Odpowiedzi:


233

dbo jest domyślnym schematem w SQL Server. Możesz tworzyć własne schematy, aby lepiej zarządzać przestrzenią nazw obiektów.


22
Jako najlepszą praktykę zawsze dodam „dbo”. prefiks, nawet jeśli nie jest to konieczne. Przez większość czasu w SQL dobrze jest być jawnym.
— SurroundedByFish

3
@SurroundedByFish: Prawdopodobnie nie jest to najlepsza praktyka, ale mogę się mylić, ponieważ nie jestem ekspertem od SQL. stackoverflow.com/a/769639/602245
— Brett,

13
Ten artykuł z innej odpowiedzi stwierdzono, że w rzeczywistości jest to najlepsza praktyka: „Kod nie musiałby używać w pełni kwalifikowanej nazwy, chociaż osiąga to niewielki wzrost wydajności i jest uważany za najlepszą praktykę.”
— Carl G

7
Również odpowiedź, którą podłączyłeś, zaleca również włączenie „dbo”. aby optymalizator nie musiał sprawdzać schematu.
— Carl G

7
dbo nie jest dobrą praktyką. Utwórz własny schemat i zawsze go używaj. dbo istnieje tylko jako sztuczka migracyjna, więc wersja wcześniejsza niż SQL Server 2005 nadal działa. Tak, zawsze używaj schematu dla perf. Nie, nie migracja (np. Dbo).
— David Betz

85

Jeśli korzystasz z Sql Server Management Studio, możesz utworzyć własny schemat, przechodząc do Bazy danych - Twoja baza danych - Bezpieczeństwo - Schematy.

Utworzenie go za pomocą skryptu jest tak proste jak (na przykład):

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

Możesz ich użyć do logicznego grupowania swoich tabel, na przykład poprzez utworzenie schematu dla informacji „finansowych” i innego dla danych „osobistych”. Twoje tabele byłyby wówczas wyświetlane jako:

Financial.BankAccounts Financial.Transactions Personal.Address

Zamiast używać domyślnego schematu dbo.


Czy wiesz, czy to powoduje jakiś problem, gdy używamy frameworku Entity?
— batmaci

6
Możesz używać schematów w Entity Framework - nawet z kodem, jeśli chcesz:[Table("Customer", Schema = "MySchema")]
— Fenton

Czy „AUTORYZACJA [dbo]” przyznaje takie same uprawnienia jak dbo w schemacie, czy też nadal muszę udzielać uprawnień użytkownikom?
— Mark Micallef,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.