Come posso modificare una tabella per abilitare CASCADE DELETE?

Ho una tabella che rappresenta gli utenti. Quando un utente viene cancellato, ottengo:

L’istruzione DELETE è in conflitto con il vincolo REFERENCE

Apparentemente, CASCADE DELETE non è così semplice come immaginavo in SQL Server e l’opzione deve essere aggiunta alla tabella.

Il problema è: non riesco a capire come aggiungere l’opzione CASCADE DELETE .

Sto usando: SQL Server 2008 . Qualche idea su come fare questo?

Leggi prima questo articolo di Microsoft. Leggimi . Uso la GUI durante la progettazione quindi ecco un’immagine di come viene selezionata in SSMS. alt text La syntax aggiunta alla chiave esterna è “ON DELETE CASCADE”

Google ALTER TABLE DROP CONSTRAINT , quindi ALTER TABLE ADD CONSTRAINT :

ALTER TABLE

Ecco un rapido esempio:

 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; 

Ecco come aggiungerei la funzionalità “elimina in cascata” a una chiave esterna esistente in SQL Server Management Studio .

Innanzitutto, trova la tua chiave esterna e aprila “DROP e CREA A” in una nuova finestra di Query.

Rilascia e crea

Quindi, aggiungi ” ON DELETE CASCADE ” al comando ” ADD CONSTRAINT “:

On elimina cascata

Quindi premi il pulsante “Esegui” per eseguire la query.

Lavoro fatto !