Blog > Mars 2015
Could not drop object 'dbo.MyTable' because it is referenced by a FOREIGN KEY constraint


Au moment de supprimer une table, il arrive d'avoir l'erreur suivante :
Msg 3726, Level 16, State 1, Line 3
Could not drop object 'dbo.MyTable' because it is referenced by a FOREIGN KEY constraint.

Cela signifie que des contraintes (valeurs par défaut, clés étrangères) existent et doivent être supprimées avant la suppression de la table.
Pour les retrouver plus facilement, voici une requête permettant de lister les contraintes actives sur une table :
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'