首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

能否通过触发器实现满足某个条件时,遏止审核单据

2013-12-09 
能否通过触发器实现满足某个条件时,阻止审核单据?如题,比如,领料单单身有两个栏位A、B,当A或B的值为空时,不

能否通过触发器实现满足某个条件时,阻止审核单据?
如题,比如,领料单单身有两个栏位A、B,当A或B的值为空时,不允许审核单据,并且提示信息,只有当A,B有具体值时才可以审核(注,无系统源码,才想这样的下三烂手段)能否通过触发器实现满足某个条件时,遏止审核单据

但同时引发出另一个问题困扰我,如果是修改单据,某一行要控制的“参考单别”或“参考单号”漏写,则也会提示 '“参考单别”或“参考单号”不能为空!',造成修改后的整张单据都不能保存,必须要放弃整张单据,重新来修改。

哦 这个单据审核操作也是update操作是吧,那就和普通的update操作,没区别,所以不管是审核,还是更新,都会报错了。

如果在操作的时候,能区分审核,还是更新操作,就好了


系统单据的审核,在后台数据库就是有单据的单头档,和单身档两个表,各有一个审核码的字段,默认为‘ N ’,审核之后就都更新为‘ Y ’

哦 ,那就在你的update触发器中,再加个判断:

create  trigger tr_test_update on PURTA
for update
as 
    if  update(审核码)--这个就是审核
    begin
        if exists(select * from inserted left join PURTB on 
           inserted.单别=PURTB.单别 and inserted.单号=PURTB.单号 where A='' or B='')
           
begin
raiserror('“参考单别”或“参考单号”不能为空!',16,1)
rollback
end
end
go

热点排行