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

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


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,.....)

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.