Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Vincolo di chiave esterna SQL DROP TABLE

No, questo non rilascerà la tua tabella se ci sono davvero chiavi esterne che fanno riferimento ad essa.

Per ottenere tutte le relazioni di chiave esterna che fanno riferimento alla tua tabella, puoi utilizzare questo SQL (se sei su SQL Server 2005 e versioni successive):

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

e se ce ne sono, con questa istruzione qui, potresti creare istruzioni SQL per eliminare effettivamente quelle relazioni 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')