Maison > base de données > tutoriel mysql > Comment trouver des références de clés étrangères à l'aide du schéma information_schema de SQL Server ?

Comment trouver des références de clés étrangères à l'aide du schéma information_schema de SQL Server ?

Linda Hamilton
Libérer: 2025-01-02 19:17:39
original
343 Les gens l'ont consulté

How to Find Foreign Key References Using SQL Server's information_schema?

Obtention de la référence de clé étrangère à partir d'information_schema dans SQL Server

Question :

Dans SQL Server , comment déterminer la table référencée et le nom de colonne associés à un fichier étranger clé ?

Réponse :

Le schéma d'information fournit des métadonnées précieuses sur les objets de la base de données, y compris les relations de clé étrangère. Pour récupérer les informations de la table et de la colonne référencées, vous pouvez utiliser la requête suivante :

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

Considérations supplémentaires :

  • Contraintes uniques : Information_schema ne suit pas les indices, seulement les contraintes uniques. Pour trouver des clés étrangères basées sur des index uniques, vous pouvez interroger des tables propriétaires Microsoft telles que sys.foreign_keys et sys.key_constraints.
  • Test de preuve : Le test de cas limite fourni montre comment correctement identifier les informations de table et de colonne référencées dans divers scénarios impliquant des contraintes de clé étrangère et des index uniques.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal