2016/07/23

BUSCANDO PRIMARY KEYS Y FOREIGN KEYS?

PROBLEMA: Uno de los principales retos al que me tuve enfrentar era conocer las relaciones que existían entre las tablas y por ende, las columnas que componían cada una de las llaves primarias de las tablas, como lograr esto?

SOLUCION: Existen varias formas de poder conocerlos, en lo particular me adapté más a esta forma que es utilizando los procedimientos de catalogo, les explico:

Como ejemplo utilizaré algunas tablas de la BD AdventureWorks2014, las cuales son Person.Person , Person.BusinessEntityContact, Person.ContactType

Los procedimientos almacenados que utilizaremos son los siguientes: sp_pkeys , sp_fkeys

El script es el siguiente:
USE AdventureWorks2014;  
GO  
--nombre de la tabla
DECLARE @varTableName VARCHAR(100) = 'Person'  
DECLARE @varTableOwner VARCHAR(100) = 'Person'

EXEC sp_pkeys @table_name =  @varTableName   ,  @table_owner = @varTableOwner

EXEC sp_fkeys @pktable_name = @varTableName  , @pktable_owner = @varTableOwner

EXEC sp_fkeys @fktable_name = @varTableName , @fktable_owner = @varTableOwner


USE AdventureWorks2014;  
GO  
--nombre de la tabla
DECLARE @varTableName VARCHAR(100) = 'BusinessEntityContact'  
DECLARE @varTableOwner VARCHAR(100) = 'Person'

EXEC sp_pkeys @table_name =  @varTableName   ,  @table_owner = @varTableOwner

EXEC sp_fkeys @pktable_name = @varTableName  , @pktable_owner = @varTableOwner

EXEC sp_fkeys @fktable_name = @varTableName , @fktable_owner = @varTableOwner


USE AdventureWorks2014;  
GO  
--nombre de la tabla
DECLARE @varTableName VARCHAR(100) = 'ContactType'  
DECLARE @varTableOwner VARCHAR(100) = 'Person'

EXEC sp_pkeys @table_name =  @varTableName   ,  @table_owner = @varTableOwner

EXEC sp_fkeys @pktable_name = @varTableName  , @pktable_owner = @varTableOwner

EXEC sp_fkeys @fktable_name = @varTableName , @fktable_owner = @varTableOwner

Es un script muy sencillo pero que me ha ayudado bastante para conocer la información sobre una tabla, más adelante les mostraré como pueden buscar una columna o una tabla en toda la BD en caso que solo tenga una pequeña noción del nombre.


SALUDOS
COMPARTE ESTA INFORMACION SI TE PARECIO INTERESANTE

0 comentarios:

Publicar un comentario