Bảng không được tạo trong lược đồ dbo


15

Khi tạo bảng trong SSMS, tôi đã nhận ra rằng nếu bạn thực hiện câu lệnh sau:

CREATE TABLE [tableName];

bảng sẽ được tạo theo lược đồ của riêng bạn (chứ không phải dbo). Vì vậy, để tạo nó theo lược đồ dbo, bạn cần nói rõ ràng như thế này:

CREATE TABLE [dbo].[tableName];

Có ai biết một cách (ví dụ: cài đặt trên toàn máy chủ) để khi bảng được tạo, phần [dbo] không cần phải được chỉ định không?


1
Phiên bản nào của máy chủ SQL?

4
Và tại sao bạn có một vấn đề với việc chỉ định rõ ràng?
HLGEM

Câu trả lời:


8

Lược đồ sẽ được sử dụng khi lược đồ bị bỏ qua sẽ là lược đồ mặc định của người dùng cơ sở dữ liệu. Do đó, để có dbolược đồ có bảng đã tạo mà không chỉ định, bạn phải đặt lược đồ mặc định của cơ sở dữ liệu đó thành dbo.

Cài đặt toàn máy chủ? Tôi không nghĩ vậy. Nhưng bạn có thể viết một truy vấn để chuyển đổi tất cả người dùng cơ sở dữ liệu trong một cơ sở dữ liệu cụ thể sang lược đồ mặc định của họ được đổi thành dbonếu đó là những gì bạn chọn.


@KAJ: SQL2008R2
Chinesinho

1
Nhưng bạn không thể đặt lược đồ mặc định thành dbo cho các nhóm Windows ...
Chinesinho

5
@Chinesinho Bạn không thể đặt lược đồ mặc định của bất kỳ hiệu trưởng máy chủ nào. Bạn đang nhầm lẫn đăng nhập máy chủ và người dùng cơ sở dữ liệu. Người dùng cơ sở dữ liệu chứa các lược đồ mặc định.
Thomas Stringer

Đặt lược đồ mặc định cho người dùng được ánh xạ tới thông tin đăng nhập nhóm Windows không được hỗ trợ trước SQL Server 2012.
db2

7

Có lẽ điều này có thể giúp

USE [YourDBName]
GO
ALTER USER [YourUserName] WITH DEFAULT_SCHEMA=[dbo]
GO

3
nhưng nếu người dùng ở trong cửa sổ Xác thực thì nó không thể đặt lược đồ mặc định
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.