前几天业务部门提出需求,想限定501仓库的领料单只能让工号为A001和A002的用户审核。
问题点:
1.怎样能获取审核者编号。
2.触发器设定在哪里。
通过分别设置触发器给单头,单身,发现易飞领料单的审核逻辑是:审核单身-》插入INVLA-》审核单头。
另外,审核者编号获取如果是在取INVLA.CREATOR 就好办多了。
好了,结论出来了,在INVLA上面设定触发器。
CREATE TRIGGER [dbo].[INVLAINS] ON [dbo].[INVLA]
AFTER INSERT
AS
DECLARE @TC009 CHAR(1),
@TC015 CHAR(10),
@LA006 CHAR(4),
@LA007 CHAR(11),
@TE008 CHAR(10),
@MODI CHAR(10)
SET NOCOUNT ON
IF exists(SELECT * FROM MOCTC,inserted WHERE LA006=TC001 AND LA007=TC002)
begin
SELECT @LA006=LA006,@LA007=LA007,@TE008=TE008,@MODI=i.CREATOR FROM INSERTED i INNER JOIN MOCTE ON LA006=TE001 AND LA007=TE002 AND LA008=TE003 INNER JOIN MOCTC ON TC001=TE001 AND TC002=TE002
if @TE008='501' AND @MODI<>'A001' and @MODI<>'A002'
BEGIN
--raiserror是不能在前台显示的。
--raiserror (N'501仓库只允许指定人员的审核',10,1)
ROLLBACK
return
END
end