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
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';
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!