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. 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.
Quindi, aggiungi ” ON DELETE CASCADE
” al comando ” ADD CONSTRAINT
“:
Quindi premi il pulsante “Esegui” per eseguire la query.
Lavoro fatto !