|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
写了一个FOR UPDATE的触发器,功能是单据分录内单价字段为0时不允许审核
我的思路是这样的,当审核时,判断有没有单价为0的分录,如果有,清空审核人、审核时间,同时修改审核状态,并弹出提示对话框。
写是写好了,但是测试时我发现,根本不用对以上三个字段做出update的动作。
本来是好事,我本来就不想直接更改数据库数据,我只是不明白,为什么我在修改单据头内容并按“保存”的时候,并不会触发这个触发器?
附触发器代码
ALTER TRIGGER [POInStock_update_Check]
ON [dbo].[POInStock]
FOR update
AS
--Set nocount on
--Begin transaction
Declare @FInterID int --单据的内码,与icstockbillentry关联
Declare @FTranType int --单据类型(72-收料通知,73-退料通知,702-采购检验申请单)
Declare @FPrice int --单价为零数量
SELECT @FInterID=FInterID,@FTranType = FTranType FROM INSERTED
SELECT @FPrice=count(*) from POInStockEntry Where FInterID = @FInterID and FPrice=0
if @FPrice <> 0 and @FTranType = 73
Begin
-- update POInStock set FCheckerID=NULL,FCheckDate=NULL,FStatus=0 where FInterID = @FInterID
RAISERROR ('某项分录单价为空,请检查。该单据未审核。',18,18)
Return
End |
|