写了个触发器,前台程序报错,求指导
--修改t_ICItemCustom 表中的自定义字段“F_104”
create TRIGGER kdtr001
ON [dbo].[ICMrpResult]
FOR UPDATE
AS
begin
declare @insertcount int
declare @deletecount int
declare @fitemtype int
declare @newfitemtype int
declare @finterid int
set @fitemtype=(select distinct fitemtype from deleted)
set @finterid=(select distinct FInterID from deleted where FItemType=@fitemtype)
select @insertcount=COUNT(1) from inserted
select @deletecount=COUNT(1) from deleted
--当更新单据类型时
if UPDATE(fitemtype) and 1 in (select fheadselfb0548 from inserted)
begin
select @newfitemtype=fitemtype from inserted
--当单据类型变更为生产任务类时,更改物料中的自定义字段为自制
if(@newfitemtype=11011)
begin
UPDATE a set a.F_104='自制' from ICMrpResult c,t_ICItemCustom a where a.FItemID=c.FItemID and c.FItemType=11011
print(1)
print(@fitemtype)
print(@newfitemtype)
end
--当单据类型为采购申请类时,更改物料中的自定义字段为外购
else if(@newfitemtype=11010)
begin
update a set a.F_104='外购' from ICMrpResult c,t_ICItemCustom a where a.FItemID=c.FItemID and c.FItemType=11010
print(2)
print(@fitemtype)
print(@newfitemtype)
end
--当单据类型为委外加工类时,更改物料中的自定义字段为委外加工
else if(@newfitemtype=11012)
begin
update a set a.F_104='委外加工' from ICMrpResult c,t_ICItemCustom a where a.FItemID=c.FItemID and c.FItemType=11012
print(3)
print(@fitemtype)
print(@newfitemtype)
end
end
end
前台程序执行时,出现报错,如图所示:

create TRIGGER kdtr001
ON [dbo].[ICMrpResult]
FOR UPDATE
AS
begin
declare @insertcount int
declare @deletecount int
declare @fitemtype int
declare @newfitemtype int
declare @finterid int
set @fitemtype=(select distinct fitemtype from deleted)
set @finterid=(select distinct FInterID from deleted where FItemType=@fitemtype)
select @insertcount=COUNT(1) from inserted
select @deletecount=COUNT(1) from deleted
--当更新单据类型时
if UPDATE(fitemtype) and 1 in (select fheadselfb0548 from inserted)
begin
select @newfitemtype=fitemtype from inserted
--当单据类型变更为生产任务类时,更改物料中的自定义字段为自制
if(@newfitemtype=11011)
begin
UPDATE a set a.F_104='自制' from ICMrpResult c,t_ICItemCustom a where a.FItemID=c.FItemID and c.FItemType=11011
print(1)
print(@fitemtype)
print(@newfitemtype)
end
--当单据类型为采购申请类时,更改物料中的自定义字段为外购
else if(@newfitemtype=11010)
begin
update a set a.F_104='外购' from ICMrpResult c,t_ICItemCustom a where a.FItemID=c.FItemID and c.FItemType=11010
print(2)
print(@fitemtype)
print(@newfitemtype)
end
--当单据类型为委外加工类时,更改物料中的自定义字段为委外加工
else if(@newfitemtype=11012)
begin
update a set a.F_104='委外加工' from ICMrpResult c,t_ICItemCustom a where a.FItemID=c.FItemID and c.FItemType=11012
print(3)
print(@fitemtype)
print(@newfitemtype)
end
end
end
前台程序执行时,出现报错,如图所示:

...全文
相关推荐
基本RS触发器设计与代码实现
基本RS触发器设计与代码实现
了解SQLServer触发器及触发器中的事务
Oracle触发器
Oracle触发器 –今天我们根据学到的东西实现一个id列自动增长的触发器 –首先我们需要建个表,主键id,name不为空 create table student( id number primary key, name varchar2(50) not null ) –查一下看看 select * from student –要实现id列自动增长,我们需要一个序列来生成连续的整数数据对象,2020年,我们就从2020开始 create sequence seq_student_id start with 2020 --从2020开始 increment by 1
MySQL触发器 Update触发Insert失败
主要介绍了MySQL触发器 Update触发Insert失败 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
SQL server的触发器编程
一个很多好的触发器编程帮助文档,是有关于SQL Server数据库的。


疑难问题
