Tại sao tên bảng trong SQL Server lại bắt đầu với?


Câu trả lời:


234

dbo là lược đồ mặc định trong SQL Server. Bạn có thể tạo các lược đồ của riêng mình để cho phép bạn quản lý tốt hơn không gian tên đối tượng của mình.


22
Như một cách thực hành tốt nhất, tôi luôn thêm "dbo." tiền tố mặc dù không cần thiết Hầu hết thời gian trong SQL là tốt để được rõ ràng.
Được bao

3
@SurroundedByFish: Có lẽ không phải là cách thực hành tốt nhất, nhưng tôi có thể sai vì tôi không phải là chuyên gia SQL. stackoverflow.com/a/769639/602245
Brett

13
Bài viết này từ một câu trả lời khác khẳng định rằng trên thực tế đây là một cách thực hành tốt nhất: "Mã sẽ không phải sử dụng tên đủ điều kiện, mặc dù có một hiệu suất tăng nhẹ khi làm như vậy và được coi là cách thực hành tốt nhất."
Carl G

7
Ngoài ra, câu trả lời bạn liên kết cũng đề xuất bao gồm cả "dbo." để trình tối ưu hóa không phải tra cứu lược đồ.
Carl G

7
dbo không phải là một thực hành tốt. Tạo lược đồ của riêng bạn và luôn luôn sử dụng nó. dbo chỉ tồn tại một thủ thuật di chuyển để SQL Server 2005 tiếp tục hoạt động. Có, luôn luôn sử dụng một lược đồ cho perf. Không, không phải là di chuyển một (ví dụ dbo).
David Betz

85

Nếu bạn đang sử dụng Sql Server Management Studio, bạn có thể tạo lược đồ của riêng mình bằng cách duyệt đến Cơ sở dữ liệu - Cơ sở dữ liệu của bạn - Bảo mật - Lược đồ.

Để tạo một tập lệnh bằng cách sử dụng tập lệnh dễ như (ví dụ):

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

Bạn có thể sử dụng chúng để nhóm các bảng của mình một cách hợp lý, ví dụ bằng cách tạo một lược đồ cho thông tin "Tài chính" và một bảng khác cho dữ liệu "Cá nhân". Các bảng của bạn sau đó sẽ hiển thị dưới dạng:

Financial.BankAccounts Financial.Transilities Personal.Address

Thay vì sử dụng lược đồ mặc định của dbo.


Bạn có biết điều đó có gây ra vấn đề gì không khi chúng tôi sử dụng khung Entity?
batmaci

6
Bạn có thể sử dụng các lược đồ với Entity Framework - ngay cả với mã đầu tiên nếu bạn thích:[Table("Customer", Schema = "MySchema")]
Fenton

Liệu 'AUTHORIZATION [dbo]' có cấp quyền tương tự như dbo trên lược đồ không, hay tôi vẫn cần cấp quyền cho người dùng?
Đánh dấu Micallef

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.