日期:2014-05-17  浏览次数:20744 次

一条语句如何判断更新的某个字段是否为负数
比如。要执行一个更新语句。Update STable set F1=F1-变量 where ID=X

现在要实现的目的是:执行这句更新时,必须保证 更新后F1的值>0; 或者就包提示错误! 禁止更新;
如何用最少的代码完成。

不想 先通过查询  

Select F1-变量  from stable where ID=X
然后在判断是否为负数;在执行 Update STable set F1=F1-变量 where ID=X



是否可以把以上两个语句合并呢?


------解决方案--------------------
Update STable set F1=F1-变量 where ID=X and F1-变量>0
------解决方案--------------------
對表STable 添加一個check的constraint即可,e.g.
alter table STable add constraint ck_STable_F1 check(F1>0);