如何更改约束


91

SQL如何更改约束

以下是我的限制条件之一

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

我要添加

ON DELETE CASCADE

以上约束。

如何更改现有约束ACTIVEPROG_FKEY1并添加

ON DELETE CASCADE

约束ACTIVEPROG_FKEY1

考虑ACTIVEPROG_FKEY1在表ACTIVEPROG中

Answers:


144

您永远无法更改约束,但是可以删除约束然后重新创建。

看看这个

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

然后ON DELETE CASCADE像这样重新创建它

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

希望这个帮助


您可以启用/禁用约束。
Florin Ghita

1
@FlorinGhita,是的,我们可以启用/禁用......有时禁用表上的一个或多个约束,做一些重要的事情,然后重新启用约束是很有用的)。通常,这样做是为了提高批量加载操作期间的性能。
安迪2012年

12

不能。我们不能更改约束,只能做的就是删除并重新创建约束

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME]

外键约束

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

主键约束

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

6
的确,OP想要什么是不可能的,但是为什么您将链接发布到SQL Server站点以解决一个标记为Oracle的问题呢?
Frank Schmitt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.