SQL Server - 阻止两列同时具有特定值的约束

时间:2015-07-28 09:23:38

标签: sql-server

我有一张桌子PO_HEADER -

PO_NO | STATUS | AUTHORISATION DATE | AUTHORISATION CODE | ....

在我的应用程序中,创建状态为8的采购订单,然后在授权后将状态更改为1.我的问题是,有时保存采购订单时,尽管没有采购订单,但状态为1而不是8任何能够做到这一点的代码(我能找到)。

那么,是否有可能创建一个约束来阻止尝试将“STATUS”设置为1的更新,同时将“AUTHORIZATION CODE”留空(null)?

1 个答案:

答案 0 :(得分:0)

只需使用此检查约束

ALTER TABLE t ADD CONSTRAINT CK_your_Constraint_name 
CHECK (STATUS != 1 AND (AUTHORISATION CODE = '' OR AUTHORISATION CODE IS NULL) )