Tabel tidak dibuat di bawah skema dbo


16

Saat membuat tabel di SSMS, saya menyadari bahwa jika Anda menjalankan pernyataan berikut:

CREATE TABLE [tableName];

tabel akan dibuat di bawah skema Anda sendiri (dan bukan dbo). Jadi untuk membuatnya di bawah skema dbo, Anda harus mengatakannya secara eksplisit, seperti ini:

CREATE TABLE [dbo].[tableName];

Adakah yang tahu cara (mis. Pengaturan server-wide) sehingga ketika sebuah tabel dibuat, bagian [dbo] tidak perlu ditentukan?


1
Versi server SQL yang mana?

4
Dan mengapa Anda memiliki masalah dengan menentukan secara eksplisit?
HLGEM

Jawaban:


8

Skema yang akan digunakan ketika skema dihilangkan akan menjadi skema default pengguna database. Oleh karena itu, agar dboskema memiliki tabel yang dibuat tanpa menentukan, Anda harus mengatur skema default pengguna database tersebut dbo.

Pengaturan di seluruh server? Saya kira tidak. Tapi Anda bisa menulis kueri untuk mengubah semua pengguna basis data di basis data tertentu ke skema default mereka diubah menjadi dbojika itu yang Anda pilih.


@KAJ: SQL2008R2
Chinesinho

1
Tetapi Anda tidak dapat mengatur skema default ke dbo untuk grup Windows ...
Chinesinho

5
@ Chinesinho Anda tidak dapat menetapkan skema default dari prinsipal server apa pun. Anda membingungkan server login dan pengguna basis data. Pengguna basis data berisi skema default.
Thomas Stringer

Mengatur skema default untuk pengguna yang dipetakan ke login grup Windows tidak didukung sebelum SQL Server 2012.
db2

8

Mungkin ini bisa membantu

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

3
tetapi jika pengguna di Otentikasi windows maka tidak dapat mengatur skema default
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.