毛123456 发表于 2017-3-21 19:28:05

请教:更新复核人并且复核人不为空的时候,那么执行。。

请教:
create TRIGGER YQF_PurBillVouch ON PurBillVouch
FOR insert,update
AS
if UPDATE(cVerifier)      --并且cVerifier不是NULL 试过(and cVerifier is not null)不行,有问题。不知道怎么写

BEGIN
IF EXISTS(SELECT * FROM inserted A
INNER JOIN PurBillVouchs B on A.PBVID=B.PBVID WHERE A.bnegative=0 AND B.iPBVQuantity<0)
begin
raiserror ('蓝字发票不允许包含负数记录,请核实!!!',11,1)
end
end




PurBillVouch是采购发票主表,当bnegative=0时,采购发票为蓝字发票
cVerifier是复核人意思
PurBillVouchs是采购发票子表


保存的允许子表出现负数,但是当复核的时候,就去检测,如有负数就不允许
要先去删除子表的负数记录
但是删除后再去保存的时候,虽然这个时候cVerifier是空的,但是其实保存的时候,经跟踪,其实还是去做了一遍 UPDATE PurBillVouch set cVerifier=null 的动作
所以仅仅用if UPDATE(cVerifier) 不行,要再排除 if UPDATE(cVerifier) 并且cVerifier不等于null



页: [1]
查看完整版本: 请教:更新复核人并且复核人不为空的时候,那么执行。。