2012-11-06 17 views
55

SQL come modificare VincoloCome Alter Vincolo

seguito è 1 del mio vincolo

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

voglio aggiungere in

ON DELETE CASCADE 

al vincolo di cui sopra.

Come faccio a modificare tale vincolo ACTIVEPROG_FKEY1 esistente e aggiungere

ON DELETE CASCADE 

al vincolo ACTIVEPROG_FKEY1

consideri ACTIVEPROG_FKEY1 è alla Tabella ACTIVEPROG

risposta

86

Non si può alterare vincoli sempre, ma li si può cadere e quindi ricreare.

hanno look su questo

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1; 

e quindi ricrearlo con ON DELETE CASCADE come questo

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

speranza questo aiuto

+0

è possibile abilitare/disabilitare i vincoli. –

+0

@FlorinGhita, sì, possiamo abilitare/disabilitare ............... A volte è utile disabilitare uno o più vincoli su una tabella, fare qualcosa di significativo e quindi riattivare la difesa (s) dopo aver finito. Questo è più spesso fatto per migliorare le prestazioni durante un'operazione di carico di massa. – andy

6

No. Non possiamo alterare il vincolo, unica cosa che possiamo fare è cadere e ricrearlo

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME] 

Vincolo della 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,.....) 
+5

E 'vero che ciò che il PO vuole non è possibile, ma perché farlo si pubblica un collegamento a un sito di SQL Server per una domanda contrassegnata da Oracle? –