domingo, 9 de junio de 2013

Ver las relaciones de todas las tablas de la base de datos


Si se requiere reportar las relaciones que tienen en su base de datos, este pequeño codigo sirve mucho.
select name as relacion, object_name(parent_object_id) as tabla
from sys.objects where type in (N'F')
pero con eso solo podemos ver la relacion y en que tabla esta, ahora podemos cambiar a esto:
select name as relacion_fk, object_name(parent_object_id) as tabla ,
object_name(referenced_object_id) as tabla_referencia from sys.foreign_keys
que nos muestra la tabla a la que pertenece la relacion y la tabla a la que hace referencia la clave foranea.
Ahora si agregamos una tablita mas podemos ver las columas relacionadas:
select f.name as relacion_fk, object_name(f.parent_object_id) as tabla ,
        col_name( c.parent_object_id, c.parent_column_id) as columna,
        object_name(f.referenced_object_id) as tabla_referencia,
        col_name( c.referenced_object_id, c.referenced_column_id) as columna_referencia
from sys.foreign_keys f inner join sys.foreign_key_columns as c
       on f.object_id = c.constraint_object_id

0 comentarios:

Publicar un comentario