2012-11-06 13 views
55

SQL Jak Alter WiązanieJak Alter Wiązanie

Poniżej 1 mojego przymusu

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

chcę dodać w

ON DELETE CASCADE 

do ograniczenia wyżej.

Jak mogę zmienić, że istniejące wiązania ACTIVEPROG_FKEY1 i dodać

ON DELETE CASCADE 

do przymusu ACTIVEPROG_FKEY1

Rozważmy ACTIVEPROG_FKEY1 jest w tabeli ACTIVEPROG

Odpowiedz

86

Nie możesz zmieniać ograniczeń kiedykolwiek ale można je usunąć i następnie odtworzyć.

Czy patrzeć na

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1; 

a następnie odtworzyć go ON DELETE CASCADE jak ten

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

nadziei To pomoże

+0

można włączyć/wyłączyć wiązania. –

+0

@FlorinGhita, tak, możemy włączyć/wyłączyć ............... Czasami warto wyłączyć jedno lub więcej ograniczeń na stole, zrobić coś znaczącego, a następnie ponownie włączyć konstelację (s) po zakończeniu. Jest to najczęściej wykonywane w celu poprawy wydajności podczas operacji ładowania zbiorczego. – andy

6

nr My nie może zmienić ograniczenia, jedyną rzeczą, możemy zrób to upuść i odtwórz ponownie:

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME] 

klucz obcy Ograniczenie

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

klucz podstawowy

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

To prawda, że ​​to, co PO chce, nie jest możliwe, ale dlaczego umieścisz link do witryny SQL Server dla pytania o nazwie Oracle? –