viernes, 12 de noviembre de 2010

Identificar la llave primaria de una tabla(Primary Key)

Algunas veces debido a que las relaciones entre tablas no estan bien hechas es necesario conocer el nombre de la tabla que tiene un campo o columna identity, por ejemplo supongamos que tengo una tabla con un campo id_banco que hace referencia a otra tabla, desafortunadamente como no tengo una relación, esto no lo puedo ver en los diagramas, en un post anterior hice un store procedure que busca campos y texto buscar un campo en la base de datos, pero se pierde mucho tiempo bueno pues aquí dejo una consulta que a partir del nombre de la columna puede obtener el nombre de la tabla

SELECT 
    TC.TABLE_NAME, 
    TC.CONSTRAINT_NAME, 
    KCU.COLUMN_NAME, 
    KCU.ORDINAL_POSITION 
FROM 
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
    INNER JOIN
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU
    ON TC.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME 
WHERE
    TC.CONSTRAINT_TYPE = 'PRIMARY KEY'
    AND COLUMN_NAME='Id_Banco'
    -- AND T.TABLE_NAME = 'table_name'
ORDER BY
    TC.TABLE_NAME,
    KCU.ORDINAL_POSITION

No hay comentarios:

Publicar un comentario