SQL Server'daki tablo adları neden “dbo” ile başlıyor?


Yanıtlar:


234

dbo, SQL Server'daki varsayılan şemadır. Nesne ad alanınızı daha iyi yönetmenize izin vermek için kendi şemalarınızı oluşturabilirsiniz.


22
En iyi yöntem olarak her zaman "dbo" eklerim. gerekli olmasa bile önek. SQL'de çoğu zaman açık olmak iyidir.
SurroundedByFish

3
@SurroundedByFish: Muhtemelen en iyi uygulama değildir, ancak SQL uzmanı olmadığım için yanlış olabilirim. stackoverflow.com/a/769639/602245
Brett

13
Farklı bir yanıttan çıkan bu makale aslında en iyi uygulama olduğunu iddia ediyor: "Kod tam olarak nitelenmiş adı kullanmak zorunda kalmayacak, ancak bunu yaparken küçük bir performans kazancı var ve en iyi uygulama olarak kabul ediliyor."
Carl G

7
Ayrıca, bağladığınız yanıt "dbo" ifadesini de eklemenizi önerir. böylece optimizer şemayı aramak zorunda kalmaz.
Carl G

7
dbo iyi bir uygulama değildir. Kendi şemanızı oluşturun ve her zaman kullanın. dbo yalnızca bir taşıma hilesi vardır, bu nedenle SQL Server 2005 öncesi çalışmaya devam eder. Evet, daima mükemmel bir şema kullanın. Hayır, göç değil (örn. Dbo).
David Betz

85

Sql Server Management Studio kullanıyorsanız, Veritabanları - Veritabanınız - Güvenlik - Şemalara giderek kendi şemanızı oluşturabilirsiniz.

Bir komut dosyası kullanarak bir tane oluşturmak (örneğin) kadar kolaydır:

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

Tablolarınızı mantıksal olarak gruplandırmak için kullanabilirsiniz, örneğin "Finansal" bilgiler için bir şema ve "Kişisel" veriler için başka bir şema oluşturarak. Tablolarınız daha sonra şu şekilde görüntülenir:

Financial.BankHesaplar Finansal.İşlemler Kişisel.Adres

Varsayılan dbo şemasını kullanmak yerine.


Varlık çerçevesini kullandığımızda bunun herhangi bir soruna neden olup olmadığını biliyor musunuz?
batmacı

6
Şemaları Entity Framework ile kullanabilirsiniz - isterseniz ilk önce kodla bile:[Table("Customer", Schema = "MySchema")]
Fenton

'YETKİ [dbo]' şemada dbo ile aynı izinleri veriyor mu yoksa kullanıcılara yine de izin vermem gerekiyor mu?
Mark Micallef

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.