CREATE TRIGGER [TRIGGER Triginsert] ON dbo.main_sffb
FOR INSERT
AS
declare @fbxh decimal(18),
@fbyjje money,@fbjmje money
select @fbxh=收费编号,@fbyjje=已交金额,@fbjmje=减免金额 from inserted
update main_sfzb set 已交金额=已交金额+@fbyjje,减免金额=减免金额+@fbjmje where 收费编号=@fbxh这个是我写的一个触发器,在对表main_sffb插入数据的时候同时更新main_sfzb的相关数据
问题是这样的:我用SQL语句:insert main_sffb( 字段) 插入多条数据,数据已经插入了,可是在 main_sfzb中只对第一条满足的记录做了更新,其他的都没变,清高手帮看看有什么问题?
FOR INSERT
AS
declare @fbxh decimal(18),
@fbyjje money,@fbjmje money
select @fbxh=收费编号,@fbyjje=已交金额,@fbjmje=减免金额 from inserted
update main_sfzb set 已交金额=已交金额+@fbyjje,减免金额=减免金额+@fbjmje where 收费编号=@fbxh这个是我写的一个触发器,在对表main_sffb插入数据的时候同时更新main_sfzb的相关数据
问题是这样的:我用SQL语句:insert main_sffb( 字段) 插入多条数据,数据已经插入了,可是在 main_sfzb中只对第一条满足的记录做了更新,其他的都没变,清高手帮看看有什么问题?
FOR INSERT
AS
select * into #t from insertedDECLARE test_Cursor CURSOR FOR
select * from #tOPEN test_Cursor FETCH NEXT FROM test_Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
--更新写这里
FETCH NEXT FROM Employee_Cursor
ENDCLOSE test_Cursor
DEALLOCATE test_Cursor
DROP TABLE #T
不知道对不对,高手给指导下
CREATE TRIGGER [TRIGGER Triginsert] ON dbo.main_sffb
FOR INSERT
AS
update main_sfzb
set main_sfzb.已交金额=main_sfzb.已交金额+inserted.已交金额,main_sfzb.减免金额=main_sfzb.减免金额+inserted.减免金额
FROM main_sfzb A,(select 收费编号,sum(已交金额) 已交金额,sum(减免金额) 减免金额 from inserted group by 收费编号) B
where A.收费编号=B.收费编号
--try
CREATE TRIGGER [TRIGGER Triginsert] ON dbo.main_sffb
FOR INSERT
AS
update main_sfzb
set main_sfzb.已交金额=main_sfzb.已交金额+B.已交金额,main_sfzb.减免金额=main_sfzb.减免金额+B.减免金额
FROM main_sfzb,(select 收费编号,sum(已交金额) 已交金额,sum(减免金额) 减免金额 from inserted group by 收费编号) B
where main_sfzb.收费编号=B.收费编号
FOR INSERT
AS
update main_sfzb
set 已交金额=a.已交金额+b.已交金额,
减免金额=a.减免金额+b.减免金额
from main_sfzb a,inserted b
where a.收费编号=b.收费编号go
当插入很多条数据的时候,把所有插入的数据
写如Inserted ,触发器只执行一次,而不是插入几条数据
就执行几次触发器的内容,估计是这样;)期待高手
FOR INSERT
AS
update main_sfzb set
已交金额=isnull(已交金额,0) + isnull(B.已交金额,0),
减免金额=isnull(减免金额,0) + isnull(B.减免金额,0)
FROM main_sfzb A inner join
(select 收费编号,sum(已交金额) 已交金额,sum(减免金额) 减免金额 from inserted group by 收费编号) B
on A.收费编号=B.收费编号