Heim >Datenbank >MySQL-Tutorial >Wie lösche ich eine SQL Server-Tabelle mit kaskadierenden Einschränkungen?

Wie lösche ich eine SQL Server-Tabelle mit kaskadierenden Einschränkungen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-29 10:52:09410Durchsuche

How to Drop a SQL Server Table with Cascading Constraints?

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:

  1. Öffnen Sie SQL Server Management Studio.
  2. Navigieren Sie zu: Extras > Optionen > SQL Server-Objekt-Explorer > Skripterstellung
  3. Aktivieren Sie das Kontrollkästchen „Skript für abhängige Objekte generieren“.
  4. Klicken Sie mit der rechten Maustaste auf die Tabelle, die Sie löschen möchten.
  5. Wählen Sie „Skript > Ablegen auf >“. Neues Abfragefenster.“

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:

  1. Erstellen Sie eine rekursive gespeicherte Prozedur, die die Tabelle und alle ihre abhängigen Objekte löscht.
    z. B.:
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
  1. Rufen Sie die gespeicherte Prozedur mit dem Namen auf Tabelle, die Sie löschen möchten:
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn