一尘不染

您可以替换或更新SQL约束吗?

sql

我为名为“ grade”的列编写了以下约束:

CONSTRAINT gradeRule CHECK grade IN (鈥榚asy鈥�, 鈥榤oderate鈥�, 鈥榙ifficult鈥�),

以后是否可以将其更新gradeRule为具有不同的值?例如,“中等”和“困难”可以更改为“中等”和“困难”。

谢谢


阅读 237

收藏
2021-03-17

共1个答案

一尘不染

您可以删除现有约束,并使用NOCHECK选项添加新约束。即使表中的数据违反了约束,这也允许您添加约束。这样做的问题是,如果不先使现有记录通过约束,就无法更新现有记录。

ALTER TABLE SomeTable DROP CONSTRAINT gradeRule
GO
ALTER TABLE SomeTable ADD CONSTRAINT gradeRule ... WITH NOCHECK
GO

尽管这是可行的,但通常不建议这样做,因为将来数据更新可能会带来问题。

2021-03-17