Jak zmienić ograniczenie

91

SQL Jak zmienić ograniczenie

Poniżej znajduje się jedno z moich ograniczeń

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

Chcę dodać

ON DELETE CASCADE

do powyższego ograniczenia.

Jak zmienić to istniejące ograniczenie ACTIVEPROG_FKEY1 i dodać

ON DELETE CASCADE

do ograniczenia ACTIVEPROG_FKEY1

Rozważmy, że ACTIVEPROG_FKEY1 znajduje się w tabeli ACTIVEPROG

user1777711
źródło

Odpowiedzi:

146

Nie możesz nigdy zmieniać ograniczeń, ale możesz je porzucić, a następnie utworzyć ponownie.

Spójrz na to

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

a następnie odtwórz go w ON DELETE CASCADEten sposób

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

Mam nadzieję, że to pomoże

user1819920
źródło
możesz włączyć / wyłączyć ograniczenia.
Florin Ghita
1
@FlorinGhita, tak, możemy włączyć / wyłączyć ............... Czasami warto wyłączyć jedno lub więcej ograniczeń w tabeli, zrobić coś znaczącego, a następnie ponownie włączyć ograniczenie (s ) po zakończeniu. Jest to najczęściej wykonywane w celu poprawy wydajności podczas operacji ładowania zbiorczego.
andy
12

Nie. Nie możemy zmienić ograniczenia, jedyne, co możemy zrobić, to upuścić je i odtworzyć

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME]

Ograniczenie klucza obcego

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

Podstawowe ograniczenie klucza

Alter Table Table add constraint [Primary Key] Primary key(Column1,Column2,.....)
andy
źródło
6
Prawdą jest, że to, czego chce OP, nie jest możliwe, ale po co umieszczasz łącze do witryny SQL Server w przypadku pytania oznaczonego tagiem Oracle?
Frank Schmitt