SCHEMA en Microsoft SQL Server

Muchas veces trabajando con bases de datos nos encontramos que al ver el listado de las tablas nos aparece el nombre de usuario al lado izquierdo del nombre de la tabla separandola de este con un punto.

Esto se denomina SCHEMA y es por decirlo de algun modo la identificacion del propietario de la tabla.

Pero podemos indicarle que utilice el de la propia base de dator para que asi no haya ninguna complicacion a la hora de programar, que suele haberlas, al importar las tablas a otra base distinta.

Para este echo cambiaremos en las seccion de Seguridad, Usuarios, hay una opcion para indicar cual sera el SCHEMA por defecto. Aqui le indicaremos que use por defecto el propio de la base de datos, suele ser “dbo”.

Si ya tenemos muchas tablas creadas y sus respectivos procedimientos almacenados podemos realizar una consulta para cambiar todos los SCHEMA de un solo golpe.

Para las tablas es bien sencillo, solo tenemos que ejecutar esta simple consulta:

 exec sp_MSforeachtable "ALTER SCHEMA dbo TRANSFER ? PRINT '? modified' "

Para los procedimientos almacenador utilizaremos una consulta:

 SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + p.Name
 FROM sys.Procedures p INNER JOIN
 sys.Schemas s on p.schema_id = s.schema_id
 WHERE s.Name = 'schema'

Esta consulta nos devuelve una lista con los comandos para cambiar todos los procedimientos almacenados de schema a dbo.

Solo tenemos que copiar el resultado y pegarlo en una nueva consulta.

Espero que esto sea de ayuda y si teneis alguna pregunta o quereis añadir algua correccion no lo dudeis, estamos aqui para eso.

Anuncios

Acerca de NexusFireMan

Conocedor de las nuevas tecnologías, Community Manager, Bloger, Wordpress, Velneo, Social Media y encandilado con Android.

Publicado el 09/12/2009 en SQL y etiquetado en , , , . Guarda el enlace permanente. 2 comentarios.

  1. Pero para cambiar el schema de las views ?? como sería??

  2. Buenos días,

    Creo que para cambiar el de los Views podría ser cambiando en la linea 2 “sys.Procedures” por “sys.Wiews” pero no estoy muy seguro.

    Tendría que mirarlo bien.

    Prueba y ya me contaras.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: