2011-11-21 12 views

risposta

37

Uno schema predefinito è specifico per l'utente:

USE yourDatabase; 
ALTER USER [yourUser] WITH DEFAULT_SCHEMA = myschema; 

Maggiori informazioni sulla ALTER TABLE per SQL 2005 potrebbe aiutare pure.

Poiché questo è specifico per l'utente, se si dispone di più utenti, sarà necessario eseguire questa query (su ciascun database) per ciascun utente il cui schema predefinito si desidera aggiornare.

E 'importante notare:

The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin 
fixed server role. All members of the sysadmin fixed server role have a default 
schema of dbo. 
+0

Gli script vengono compilati correttamente ma il problema persiste. – user960567

+0

Il seguente script. selezionare schema_name() che mostra dbo – user960567

+0

@ user960567 Ho provato questo e ha funzionato per me. (anche appena testato 'schema_name()') Hai fornito lo schema predefinito per il database corretto? è l'utente che stai cercando di aggiornare collegato ad un login sqlServer? –

3

È possibile utilizzare:

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing; 

Per impostare lo schema predefinito per l'utente.

+0

Questo non funziona. – user960567

+0

nota AdamWenger [qui] (http://stackoverflow.com/a/8208124/426315) - 'sysadmin' avrà sempre' dbo' come schema predefinito. – itsho

Problemi correlati