Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL DROP TABLE-Fremdschlüsseleinschränkung

Nein, dies wird Ihre Tabelle nicht löschen, wenn es tatsächlich Fremdschlüssel gibt, die darauf verweisen.

Um alle Fremdschlüsselbeziehungen zu erhalten, die auf Ihre Tabelle verweisen, können Sie diese SQL verwenden (wenn Sie SQL Server 2005 und höher verwenden):

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

und falls es welche gibt, könnten Sie mit dieser Anweisung hier SQL-Anweisungen erstellen, um diese FK-Beziehungen tatsächlich zu löschen:

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')