24 may 2011

Todas las FK de una DB

Uno de mis mentores, me pasó el siguiente script cuyo propósito es poder mostrar las relaciones tipo foreing key entre las tablas de una base de datos. De manera que con una sola ejecución nos da de forma tabulada la Tabla Hija, la Tabla Padre, la columna hija y la columna padre.
SELECT
child.name AS "Tabla Hija",
parent.name AS "Tabla Padre",
c_colums.name AS "Columna Hija",
p_colums.name AS "Columna Padre"
FROM sys.foreign_key_columns fkc
INNER JOIN sysobjects child ON child.id = fkc.parent_object_id
INNER JOIN sysobjects parent ON parent.id = fkc.referenced_object_id
INNER JOIN syscolumns c_colums ON c_colums.id = fkc.parent_object_id
AND c_colums.colid = parent_column_id
INNER JOIN syscolumns p_colums ON p_colums.id = fkc.referenced_object_id
AND p_colums.colid = fkc.referenced_column_id

Se requiere obviamente los permisos suficientes para acceder a las tablas del sistema.
Es una forma práctica de documentar estas relaciones en caso de que sean necesario. Muchas Gracias Norber Genius Mesen.

Roy {aka. Foy}

Autor & Editor

Desarrallador y líder técnico, con experiencia en tecnologías Microsoft desde los tiempos del VB6 y el asp clásico hasta el .Net Core, pasando por COM+, javascript, angularjs, Ionic, xaml, cordova, MVC, Web Api, Sql Server, Oracle... . Ávido lector, apasionado programador.