2011-11-21 13 views

Respuesta

37

Un esquema predeterminado es específica del usuario:

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

Más información sobre el ALTER TABLE para SQL 2005 podría ayudar también.

Como se trata de un usuario específico, si tiene varios usuarios, deberá ejecutar esta consulta (en cada base de datos) para cada usuario cuyo esquema predeterminado desee actualizar.

Es importante tener en cuenta:

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

Sus scripts se compilan correctamente pero el problema persiste – user960567

+0

El siguiente script. seleccione schema_name() mostrando dbo – user960567

+0

@ user960567 He probado esto y funcionó para mí. (también acaba de probar 'schema_name()') ¿Dio el esquema predeterminado para la base de datos correcta? ¿El usuario que intenta actualizar está vinculado a un inicio de sesión de sqlServer? –

3

que puede utilizar:

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing; 

Para establecer el esquema predeterminado para el usuario.

+0

Esto no está funcionando. – user960567

+0

acaba de notar la nota de AdamWenger [aquí] (http://stackoverflow.com/a/8208124/426315) - 'sysadmin' siempre tendrá' dbo' como esquema predeterminado. – itsho

Cuestiones relacionadas