Come modificare i vincoli


91

SQL Come modificare i vincoli

Di seguito è riportato uno dei miei vincoli

CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode),

Voglio aggiungere

ON DELETE CASCADE

al vincolo di cui sopra.

Come posso modificare quel vincolo esistente ACTIVEPROG_FKEY1 e aggiungere

ON DELETE CASCADE

per vincolare ACTIVEPROG_FKEY1

Considera ACTIVEPROG_FKEY1 nella tabella ACTIVEPROG

Risposte:


144

Non puoi mai modificare i vincoli ma puoi lasciarli cadere e quindi ricrearli.

Dai un'occhiata a questo

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

e poi ricrearlo in ON DELETE CASCADEquesto modo

ALTER TABLE your_table
add CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode)
    ON DELETE CASCADE;

spero che questo aiuto


puoi abilitare / disabilitare i vincoli.
Florin Ghita

1
@FlorinGhita, sì, possiamo abilitare / disabilitare ............... A volte è utile disabilitare uno o più vincoli su una tabella, fare qualcosa di significativo e quindi riabilitare il vincolo (i) ) dopo aver finito. Questa operazione viene eseguita molto spesso per migliorare le prestazioni durante un'operazione di caricamento di massa.
andy

12

No. Non possiamo modificare il vincolo, l'unica cosa che possiamo fare è lasciarlo cadere e ricrearlo

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME]

Vincolo di chiave esterna

Alter Table Table1 Add Constraint [CONSTRAINTNAME] Foreign Key (Column) References Table2 (Column) On Update Cascade On Delete Cascade

Vincolo di chiave primaria

Alter Table Table add constraint [Primary Key] Primary key(Column1,Column2,.....)

6
È vero che ciò che l'OP vuole non è possibile, ma perché pubblichi un collegamento a un sito SQL Server per una domanda etichettata Oracle?
Frank Schmitt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.