Wie bearbeite ich eine Tabelle löschen, um zu ermöglichen, CASCADE?
-
10-10-2019 - |
Frage
habe ich eine Tabelle Benutzer darstellt. Wenn ein Benutzer gelöscht wird, erhalte ich:
DELETE-Anweisung in Konflikt mit dem REFERENCE-Einschränkung
Offenbar CASCADE DELETE
ist nicht so einfach, wie ich in SQL Server vorgestellt, und die Option Bedürfnisse der Tabelle hinzugefügt werden.
Das Problem ist. Ich kann nicht herausfinden, wie die CASCADE DELETE
Option hinzufügen
Ich bin mit: SQL Server 2008 . Irgendwelche Ideen, wie dies zu tun?
Lösung
Lesen Sie diesen ersten Microsoft-Artikel. Read Me . Ich benutze die GUI während der Konstruktion so ist hier ein Bild davon, wie es in SSMS ausgewählt ist. Die Syntax zum Fremdschlüssel hinzugefügt ist "ON DELETE CASCADE"
Andere Tipps
Google ALTER TABLE DROP CONSTRAINT
, dann ALTER TABLE ADD CONSTRAINT
:
Hier ist ein kleines Beispiel:
CREATE TABLE A
(
ID INTEGER NOT NULL UNIQUE
);
CREATE TABLE B
(
ID INTEGER NOT NULL UNIQUE
CONSTRAINT fk__B__A
REFERENCES A (ID)
);
-- Oops! Forgot the CASCADE referential actions.
-- DROP the constraint then recreate it:
ALTER TABLE B DROP
CONSTRAINT fk__B__A;
ALTER TABLE B ADD
CONSTRAINT fk__B__A
FOREIGN KEY (ID)
REFERENCES A (ID)
ON DELETE CASCADE
ON UPDATE CASCADE;
Hier ist die Art, wie ich die "Cascading löschen" -Funktion, um eine hinzufügen würde bestehende Fremdschlüssel in SQL Server Management Studio .
Zuerst Ihre Fremdschlüssel finden, und es ist „DROP und CREATE“ in einem neuen Abfragefenster öffnen.
Dann fügen Sie einfach "ON DELETE CASCADE
" zum "ADD CONSTRAINT
" Befehl:
Dann drücken Sie einfach auf den „Ausführen“, um die Abfrage auszuführen.
Job gemacht!