Maison > base de données > tutoriel mysql > Comment puis-je récupérer des références de clé étrangère à l'aide de INFORMATION_SCHEMA de SQL Server ?

Comment puis-je récupérer des références de clé étrangère à l'aide de INFORMATION_SCHEMA de SQL Server ?

Linda Hamilton
Libérer: 2025-01-01 01:17:09
original
302 Les gens l'ont consulté

How can I retrieve foreign key references using SQL Server's INFORMATION_SCHEMA?

Obtention de références de clés étrangères à partir d'Information_Schema dans SQL Server

Dans SQL Server, les clés étrangères jouent un rôle crucial dans le maintien de l'intégrité référentielle au sein d'une base de données . Pour récupérer des informations sur les références de clé étrangère, le schéma informationnel peut être une ressource précieuse.

Requête pour récupérer les références de clé étrangère :

La requête suivante récupère le nom de la contrainte de clé étrangère , table référencée et colonne pour une clé étrangère donnée colonne :

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 
    ,KCU2.TABLE_SCHEMA AS REFERENCED_TABLE_SCHEMA 
    ,KCU2.TABLE_NAME AS REFERENCED_TABLE_NAME 
    ,KCU2.COLUMN_NAME AS 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 
Copier après la connexion

Remarque : Information_schema ne contient pas d'index. Pour rechercher des clés étrangères basées sur des index uniques, reportez-vous aux tables propriétaires de SQL Server.

Exemple de récupération de référence de clé étrangère :

Considérez la structure de table suivante :

CREATE TABLE [dbo].[T_ALV_Ref_FilterDisplay] (
    [FA_MDT_ID] [varchar](20) NOT NULL,
    [FA_NAME] [varchar](255) NOT NULL
)

CREATE TABLE [dbo].[T_AP_Ref_Customer] (
    [MDT_ID] [varchar](20) NOT NULL,
    [CUST_NAME] [varchar](255) NOT NULL
)

ALTER TABLE [dbo].[T_ALV_Ref_FilterDisplay]  WITH CHECK ADD  CONSTRAINT [FK_T_ALV_Ref_FilterDisplay_T_AP_Ref_Customer] FOREIGN KEY([FA_MDT_ID])
REFERENCES [dbo].[T_AP_Ref_Customer] ([MDT_ID])
Copier après la connexion

Pour récupérer la table et la colonne référencées pour la clé étrangère [FA_MDT_ID], exécutez ce qui suit requête :

SELECT 
     FK_TABLE_NAME, 
     REFERENCED_TABLE_NAME, 
     REFERENCED_COLUMN_NAME 
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
WHERE FK_TABLE_NAME = 'T_ALV_Ref_FilterDisplay' 
  AND FK_COLUMN_NAME = 'FA_MDT_ID'
Copier après la connexion

Le résultat s'affichera :

FK_TABLE_NAME | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME
---------------|----------------------|-------------------------
T_ALV_Ref_FilterDisplay | T_AP_Ref_Customer    | MDT_ID
Copier après la connexion

Cela indique que la clé étrangère [FA_MDT_ID] dans [T_ALV_Ref_FilterDisplay] fait référence à la colonne [MDT_ID] dans [T_AP_Ref_Customer] tableau.

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!

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