Maison > base de données > tutoriel mysql > Comment récupérer les informations de table et de colonne référencées à partir de clés étrangères dans SQL Server à l'aide de « INFORMATION_SCHEMA » ?

Comment récupérer les informations de table et de colonne référencées à partir de clés étrangères dans SQL Server à l'aide de « INFORMATION_SCHEMA » ?

DDD
Libérer: 2024-12-31 20:36:10
original
453 Les gens l'ont consulté

How to Retrieve Referenced Table and Column Information from Foreign Keys in SQL Server using `INFORMATION_SCHEMA`?

Récupération des références de clé étrangère à l'aide d'Information_schema

Dans SQL Server, l'extraction de la table référencée et du nom de colonne associé à une clé étrangère peut être réalisée en utilisant une requête sur le schéma_information vues.

Requête :

SELECT 
    KCU1.CONSTRAINT_SCHEMA AS FK_CONSTRAINT_SCHEMA, 
    KCU1.CONSTRAINT_NAME AS FK_CONSTRAINT_NAME, 
    KCU1.TABLE_SCHEMA AS FK_TABLE_SCHEMA, 
    KCU1.TABLE_NAME AS FK_TABLE_NAME, 
    KCU1.COLUMN_NAME AS FK_COLUMN_NAME, 
    KCU1.ORDINAL_POSITION AS FK_ORDINAL_POSITION, 
    KCU2.CONSTRAINT_SCHEMA AS REFERENCED_CONSTRAINT_SCHEMA, 
    KCU2.CONSTRAINT_NAME AS REFERENCED_CONSTRAINT_NAME, 
    KCU2.TABLE_SCHEMA AS REFERENCED_TABLE_SCHEMA, 
    KCU2.TABLE_NAME AS REFERENCED_TABLE_NAME, 
    KCU2.COLUMN_NAME AS REFERENCED_COLUMN_NAME, 
    KCU2.ORDINAL_POSITION AS REFERENCED_ORDINAL_POSITION 
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC 

INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU1 
    ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG  
    AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA 
    AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME 

INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU2 
    ON KCU2.CONSTRAINT_CATALOG = RC.UNIQUE_CONSTRAINT_CATALOG  
    AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA 
    AND KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME 
    AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION
Copier après la connexion

Cette requête récupère le schéma de contrainte de clé étrangère, le nom, le schéma de table, le nom de table, le nom de colonne et la position ordinale pour les deux le référencement et référencé tables.

Exemple :

Pour récupérer la table et la colonne référencées pour la clé étrangère FA_MDT_ID dans la table T_ALV_Ref_FilterDisplay, utilisez la requête suivante :

SELECT 
    FK_CONSTRAINT_SCHEMA,
    FK_CONSTRAINT_NAME,
    FK_TABLE_SCHEMA,
    FK_TABLE_NAME,
    FK_COLUMN_NAME,
    REFERENCED_TABLE_SCHEMA,
    REFERENCED_TABLE_NAME,
    REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC

INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU1
    ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG
    AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA
    AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME

INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU2
    ON KCU2.CONSTRAINT_CATALOG = RC.UNIQUE_CONSTRAINT_CATALOG
    AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA
    AND KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME
    AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION
WHERE
    KCU1.FK_TABLE_NAME = 'T_ALV_Ref_FilterDisplay'
    AND KCU1.FK_COLUMN_NAME = 'FA_MDT_ID';
Copier après la connexion

Le résultat fournira le nom de la table référencée (T_AP_Ref_Customer) et le nom de la colonne (MDT_ID).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal