Como alterar a restrição

91

SQL como alterar a restrição

Abaixo está uma das minhas restrições

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

Eu quero adicionar

ON DELETE CASCADE

à restrição acima.

Como eu altero essa restrição existente ACTIVEPROG_FKEY1 e adiciono

ON DELETE CASCADE

para restringir ACTIVEPROG_FKEY1

Considere que ACTIVEPROG_FKEY1 está na Tabela ACTIVEPROG

user1777711
fonte

Respostas:

144

Você nunca pode alterar as restrições, mas pode eliminá-las e recriá-las.

Dê uma olhada nisso

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

e então recriá-lo com ON DELETE CASCADEeste

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

espero que esta ajuda

user1819920
fonte
você pode habilitar / desabilitar restrições.
Florin Ghita
1
@FlorinGhita, sim, podemos ativar / desativar ............... Às vezes é útil desativar uma ou mais restrições em uma tabela, fazer algo significativo e, em seguida, reativar as restrições ) depois de terminar. Isso geralmente é feito para melhorar o desempenho durante uma operação de carregamento em massa.
Andy
12

Não. Não podemos alterar a restrição, a única coisa que podemos fazer é descartá-la e recriá-la

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME]

Restrição de chave estrangeira

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

Restrição de chave primária

Alter Table Table add constraint [Primary Key] Primary key(Column1,Column2,.....)
Andy
fonte
6
É verdade que o que o OP deseja não é possível, mas por que você publica um link para um site do SQL Server para uma pergunta que é marcada como Oracle?
Frank Schmitt