Importé un montón de tablas de un servidor SQL antiguo (2000) a mi base de datos de 2008. Todas las tablas importadas tienen el prefijo mi nombre de usuario, por ejemplo: jonathan.MovieData
. En la tabla properties
aparece jonathan
como esquema db. Cuando escribo procedimientos almacenados, ahora tengo que incluirlos jonathan.
delante de todos los nombres de las tablas, lo cual es confuso.
¿Cómo cambio todas mis tablas para que sean dbo en lugar de jonathan?
Resultado actual: jonathan.MovieData
Resultado deseado: dbo.MovieData
sql
sql-server
database
sql-server-2008
schema
Jonathan Hall
fuente
fuente
[DOMAIN\user].[tableName]
. En general, en la comunidad de SQL Server se utilizan ([
y]
) los identificadores entre comillas de Transact-SQL , evítelos a"
menos que exista un requisito específico para ello.[
y]
, como cualquier otro caso, cuando desee ser preciso sobre el nombre de un objeto SQL.[domain\user123].TableName
.Puede ejecutar lo siguiente, que generará un conjunto de declaraciones ALTER sCHEMA para todos sus talbes:
Luego debe copiar y ejecutar las declaraciones en el analizador de consultas.
Aquí hay una secuencia de comandos anterior que también lo hará por usted, creo que al cambiar el propietario del objeto. Sin embargo, no lo he probado en 2008.
Lo obtuve de este sitio .
También habla de hacer lo mismo con los procesos almacenados si es necesario.
fuente
sys.tables
(un subconjunto de sys.objects) en su lugar.Ref: ALTER SCHEMA
fuente
Mueva la tabla del esquema dbo a MySchema:
Mueva la tabla de MySchema al esquema dbo:
fuente
Acabo de publicar esto en una pregunta similar: En SQL Server 2005, ¿cómo cambio el "esquema" de una tabla sin perder ningún dato?
Una ligera mejora a la excelente respuesta de sAeid ...
Agregué un ejecutivo para que este código se autoejecutara, y agregué una unión en la parte superior para poder cambiar el esquema de ambas tablas Y procedimientos almacenados:
Yo también tuve que restaurar un dbdump, y descubrí que el esquema no era dbo; pasé horas tratando de obtener transferencias de datos de Sql Server Management Studio o Visual Studio para alterar el esquema de destino ... Terminé ejecutando esto contra el restaurado volcar en el nuevo servidor para hacer las cosas como yo quería.
fuente
Puede cambiar por lotes los esquemas de varios objetos de base de datos como se describe en esta publicación:
Cómo cambiar el esquema de todas las tablas, vistas y procedimientos almacenados en MSSQL
fuente
Manera de hacerlo por una cosa individual:
alterar el esquema de transferencia dbo jonathan.MovieData
fuente
Tuve un problema similar, pero mi esquema tenía una barra invertida. En este caso, incluya los corchetes alrededor del esquema.
fuente
Abra SQL Server como cuenta SA y haga clic en una nueva consulta más allá de las siguientes consultas
luego haga clic en ejecutar, se revertirá todo el esquema de propiedad a la cuenta SA
fuente
ms-help: //MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/0a760138-460e-410a-a3c1-d60af03bf2ed.htm
ALTER SCHEMA nombre_esquema TRANSFER nombre_segurable
fuente