Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment puis-je savoir quelle contrainte FOREIGN KEY fait référence à une table dans SQL Server ?

Le voici :

SELECT 
   OBJECT_NAME(f.parent_object_id) TableName,
   COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName
FROM 
   sys.foreign_keys AS f
INNER JOIN 
   sys.foreign_key_columns AS fc 
      ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN 
   sys.tables t 
      ON t.OBJECT_ID = fc.referenced_object_id
WHERE 
   OBJECT_NAME (f.referenced_object_id) = 'YourTableName'

De cette façon, vous obtiendrez la table de référence et le nom de la colonne.

Modifié pour utiliser sys.tables au lieu de sys.objects génériques selon la suggestion de commentaire. Merci, marc_s