SQL Server: Tabelle mit kaskadierenden Einschränkungen löschen
In Oracle ermöglicht die Option „CASCADE CONSTRAINTS PURGE“ in der DROP TABLE-Anweisung das Entfernen einer Tabelle und ihrer abhängigen Einschränkungen und Daten.
Die entsprechende Funktionalität in SQL Server ist nicht über eine einzelne verfügbar Befehl. Es gibt jedoch zwei alternative Möglichkeiten, um das gewünschte Ergebnis zu erzielen:
Verwenden von Skriptoptionen:
Dadurch wird ein Skript generiert, das alle abhängigen Objekte enthält und sie an der richtigen Stelle ablegt Reihenfolge.
Verwenden einer rekursiven gespeicherten Prozedur:
CREATE PROC DropTableCascade (@TableName nvarchar(max)) AS BEGIN IF OBJECT_ID(@TableName) IS NOT NULL BEGIN EXEC sp_MSForEachTable 'IF "{DB_NAME()}.dbo.' + name in (SELECT name FROM sysobjects WHERE type = ''U'' AND parent_id = OBJECT_ID(@TableName)) BEGIN PRINT ''Dropping table '' + ''{DB_NAME()}.dbo.'' + name PRINT ''DELETE FROM '' + ''{DB_NAME()}.dbo.'' + name + ''; DROP TABLE '' + ''{DB_NAME()}.dbo.'' + name + ''; END' DROP TABLE @TableName END END
EXEC DropTableCascade 'YourTableName'
Das obige ist der detaillierte Inhalt vonWie lösche ich eine SQL Server-Tabelle mit kaskadierenden Einschränkungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!