La tabla no se crea bajo el esquema dbo

16

Al crear tablas en SSMS, me di cuenta de que si ejecuta la siguiente instrucción:

CREATE TABLE [tableName];

la tabla se creará bajo su propio esquema (y no dbo). Entonces, para crearlo bajo el esquema dbo, deberá decirlo explícitamente, así:

CREATE TABLE [dbo].[tableName];

¿Alguien sabe de alguna manera (por ejemplo, configuración de todo el servidor) para que cuando se crea una tabla, la parte [dbo] no necesita ser especificada?

Chinesinho
fuente
1
¿Qué versión del servidor SQL?
44
¿Y por qué tiene un problema al especificar explícitamente?
HLGEM

Respuestas:

8

El esquema que se utilizará cuando se omita el esquema será el esquema predeterminado del usuario de la base de datos. Por lo tanto, para que el dboesquema tenga la tabla creada sin especificar, tendría que establecer el esquema predeterminado del usuario de esa base de datos dbo.

Configuración de todo el servidor? No lo creo. Pero podría escribir una consulta para convertir a todos los usuarios de la base de datos en una base de datos particular a su esquema predeterminado cambiado dbosi eso es lo que usted elige.

Thomas Stringer
fuente
@KAJ: SQL2008R2
Chinesinho
1
Pero no puede establecer el esquema predeterminado en dbo para grupos de Windows ...
Chinesinho
55
@Chinesinho No puede establecer el esquema predeterminado de ningún servidor principal. Está confundiendo los inicios de sesión del servidor y los usuarios de la base de datos. Los usuarios de la base de datos contienen esquemas predeterminados.
Thomas Stringer
La configuración del esquema predeterminado para los usuarios asignados a los inicios de sesión de grupo de Windows no es compatible antes de SQL Server 2012.
db2
8

Quizás esto pueda ayudar

USE [YourDBName]
GO
ALTER USER [YourUserName] WITH DEFAULT_SCHEMA=[dbo]
GO
LazyProgrammer
fuente
3
pero si el usuario está en la autenticación de Windows, entonces no puede establecer el esquema predeterminado