update触发器 return 之后仍然更新成功
create trigger [p_order_au] on [dbo].[p_order] FOR update
AS
BEGIN
set nocount on
/* 更新打印标志时直接退出 要求前台更新打印标志时不能同时更新其它字段
if update(printed) or update(finished) */
IF update(finished)
begin
return
end
/* 单据已被引用,不能修改供应商、客户! */
if update(traderid) and
exists(select 1 from inserted i,p_orderdetail o
where i.billid=o.billid and o.referqty > 0.0000001)
begin
exec throwexception 'billrefered'
RETURN
end
-- 订单完成后不能再中止
if update(closed) and
exists(select 1 from inserted i, p_order p
where i.billid=p.billid and i.Closed = 1 and p.finished = 1)
begin
raiserror ('订单已完成,不能中止!', 16, -1)
return
end
END