El día de hoy un amigo me pregunto como ver las relaciones foráneas (FK) de una tabla(s) en SQL 2005 desde código y no en vista de diseño. Poniéndome a buscar encontré algunos ejemplos, de los cuales considero el más eficaz. El siguiente ejemplo muestra como obtener las llaves foráneas en conjunto con sus relaciones a otras tablas en SQL Server 2005. Todo consiste en acceder al catalogo de sistema que contiene las llaves foráneas y el catalogo de columnas de las mismas llaves.
USE tuBaseDeDatos; GO SELECT fk.name AS FK, OBJECT_NAME(fk.parent_object_id) AS TableName, COL_NAME(fc.parent_object_id,fc.parent_column_id) AS ColumnName, OBJECT_NAME (fk.referenced_object_id) AS ReferenceTableName, COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName FROM sys.foreign_keys AS fk INNER JOIN sys.foreign_key_columns AS fc ON fk.OBJECT_ID = fc.constraint_object_id
En base al código anterior y para efectos de claridad prepare la siguiente consulta que obtiene el nombre de una relación foránea (FK) y el nombre de la columna la cual funciona como FK, todo esto a partir de una determinada tabla.
USE tuBaseDeDatos; GO DECLARE @tabName AS Varchar(50) SET @tabName = 'dbo.TU_TABLA'--Nombre de la Tabla de la cual se obtendrán las FK's. SELECT OBJECT_NAME(f.constid) AS 'FKName', c.name AS 'ColName' FROM sysforeignkeys f INNER JOIN syscolumns c ON f.fkeyid = c.id AND f.fkey = c.colid WHERE fkeyid = OBJECT_ID(@tabName)
Espero les sea de ayuda. Dejen comentarios!!!
Comentarios recientes