La tabella non viene creata nello schema dbo


16

Durante la creazione di tabelle in SSMS, mi sono reso conto che se si esegue la seguente istruzione:

CREATE TABLE [tableName];

la tabella verrà creata con il tuo schema (e non con dbo). Quindi, al fine di crearlo sotto lo schema dbo, dovrai dirlo esplicitamente, in questo modo:

CREATE TABLE [dbo].[tableName];

Qualcuno conosce un modo (ad esempio un'impostazione a livello di server) in modo che quando viene creata una tabella, non è necessario specificare la parte [dbo]?


1
Quale versione di SQL Server?

4
E perché hai problemi a specificare esplicitamente?
HLGEM

Risposte:


8

Lo schema che verrà utilizzato quando lo schema viene omesso sarà lo schema predefinito dell'utente del database. Pertanto, per disporre dbodella tabella creata dello schema senza specificare, è necessario impostare lo schema predefinito dell'utente del database su dbo.

Impostazione a livello di server? Io non la penso così. Ma potresti scrivere una query per convertire tutti gli utenti del database in un determinato database nel loro schema predefinito modificato dbose è quello che scegli.


@KAJ: SQL2008R2
Chinesinho

1
Ma non puoi impostare lo schema predefinito su dbo per i gruppi di Windows ...
Chinesinho

5
@Chinesinho Non è possibile impostare lo schema predefinito di un'entità server. Stai confondendo gli accessi al server e gli utenti del database. Gli utenti del database contengono schemi predefiniti.
Thomas Stringer

L'impostazione dello schema predefinito per gli utenti mappati agli accessi ai gruppi di Windows non è supportata prima di SQL Server 2012.
db2

8

Forse questo può aiutare

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

3
ma se l'utente si trova
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.