为什么这个插入触发会触发2次
CREATE TRIGGER Fnumber_t_ICitemCore_INSERT ON dbo.t_ICitemCore
WITH ENCRYPTION
FOR INSERT
AS
DECLARE
@ItemID int,
@fshortnumber varchar(100),
@fnumber varchar(100),
@maxfshortnumber varchar(100),
@maxfnumber varchar(100),
@fparentid int
SELECT @ItemID=Fitemid,@fparentid=fparentid
FROM INSERTED
if(@@rowcount=1)
begin
select @maxfnumber=max(Fnumber) from t_ICitemCore where fparentid=@fparentid
select @fnumber=right( '000 '+rtrim(replace(@maxfnumber, '. ', ' ')+1),5)
select @fnumber=stuff(stuff(@fnumber, 2, 0, '. '), 4, 0, '. ')
select @maxfshortnumber=right(@fnumber,3)
update t_ICitemCore set fnumber=@fnumber,fshortnumber=@fshortnumber where fitemid=@ItemID
update t_item set fnumber=@fnumber,fshortnumber=@fshortnumber,ffullnumber=@fnumber where fitemid=@ItemID
insert test values(1,2)
end
编码老是+2递增,我建了表test确实进去2条记录,这是为什么
t_ICitemCore插入记录是通过视图实现,和这个有没有关系的
------解决方案--------------------K/3有个功能叫自动编码,这个设置在物料编辑界面(所有的核算项目编辑界面中都有,这个设置也通用于所有使用这个界面的核算项目)的中设置(好像是这个名字)页签中,只要勾上这个就能达到你所说的目的,而且还比较智能,哪需要像你这样写触发器,还给写死了(万一用户输入个不是数字的编码岂不是会出问题???),嗨……,自己好好研究去吧。