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

Contrainte de clé étrangère SQL DROP TABLE

Non, cela ne supprimera pas votre table s'il existe effectivement des clés étrangères qui y font référence.

Pour obtenir toutes les relations de clé étrangère référençant votre table, vous pouvez utiliser ce SQL (si vous êtes sur SQL Server 2005 et supérieur) :

SELECT * 
FROM sys.foreign_keys
WHERE referenced_object_id = object_id('Student')

et s'il y en a, avec cette instruction ici, vous pouvez créer des instructions SQL pour réellement supprimer ces relations FK :

SELECT 
    'ALTER TABLE [' +  OBJECT_SCHEMA_NAME(parent_object_id) +
    '].[' + OBJECT_NAME(parent_object_id) + 
    '] DROP CONSTRAINT [' + name + ']'
FROM sys.foreign_keys
WHERE referenced_object_id = object_id('Student')