2
我有一个表PO_HEADER具有特定值的两列 -SQL服务器 - 约束,以防止在同一时间
PO_NO | STATUS | AUTHORISATION DATE | AUTHORISATION CODE | ....
在我的申请PO与8状态创建,然后授权后的状态更改为1.我的问题是,有时当PO被保存时,即使没有任何代码(我可以找到)也能得到状态1而不是8。
那么,是不是可以创建,将阻止任何试图离开时“授权码”空(NULL)“状态”设置为1更新的约束?
'ALTER TABLE不要再增加约束CK_your_Constraint_name CHECK(状态= 1 AND(授权码= '' 或授权码IS NULL))'但也许你要检查触发器该表或交易的问题,它不是很好控制的设计缺陷与检查约束 – Mihai
好吧,我想我犯了一个错误,改变'CHECK(状态!= 1 AND ....'因为你不希望出现这种情况 – Mihai
有别在数据库中根本不会出现任何触发器,也不会涉及存储过程中的事务。我希望约束会强制发生错误,并让我找到设置无效状态的内容。 –