Mengapa nama tabel dalam SQL Server dimulai dengan "dbo"?


Jawaban:


234

dbo adalah skema default di SQL Server. Anda bisa membuat skema sendiri untuk memungkinkan Anda mengelola objek namespace dengan lebih baik.


22
Sebagai praktik terbaik, saya selalu menambahkan "dbo." meskipun tidak perlu. Sebagian besar waktu dalam SQL itu baik untuk menjadi eksplisit.
SurroundedByFish

3
@SurroundedByFish: Mungkin bukan praktik terbaik, tapi saya bisa salah karena saya bukan ahli SQL. stackoverflow.com/a/769639/602245
Brett

13
Artikel ini dari jawaban yang berbeda mengklaim bahwa itu sebenarnya praktik terbaik: "Kode tidak harus menggunakan nama yang sepenuhnya memenuhi syarat, meskipun ada sedikit peningkatan kinerja dalam melakukannya dan dianggap sebagai praktik terbaik."
Carl G

7
Selain itu, jawaban yang Anda tautkan juga merekomendasikan termasuk "dbo." sehingga pengoptimal tidak perlu mencari skema.
Carl G

7
dbo bukan praktik yang baik. Buat skema Anda sendiri dan selalu gunakan. dbo hanya ada trik migrasi sehingga pra-SQL Server 2005 terus bekerja. Ya, selalu gunakan skema untuk perf. Tidak, bukan migrasi (mis. Dbo).
David Betz

85

Jika Anda menggunakan Sql Server Management Studio, Anda dapat membuat skema Anda sendiri dengan meramban ke Database - Database Anda - Keamanan - Skema.

Untuk membuatnya menggunakan skrip semudah (misalnya):

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

Anda bisa menggunakannya untuk mengelompokkan tabel Anda secara logis, misalnya dengan membuat skema untuk informasi "Keuangan" dan lainnya untuk data "Pribadi". Tabel Anda kemudian akan ditampilkan sebagai:

Financial.BankAkun Keuangan.Transaksi Personal.Address

Alih-alih menggunakan skema default dbo.


Apakah Anda tahu jika itu menyebabkan masalah saat kami menggunakan kerangka kerja Entity?
batmaci

6
Anda dapat menggunakan skema dengan Entity Framework - bahkan dengan kode terlebih dahulu jika Anda suka:[Table("Customer", Schema = "MySchema")]
Fenton

Apakah 'OTORISASI [dbo]' memberikan izin yang sama seperti dbo pada skema, atau apakah saya masih perlu memberikan izin kepada pengguna?
Mark Micallef

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.