触发器——有关添加、删除时,将统计行数加到另一个表的问题
yeag 2003-08-25 02:23:25 想写一个触发器实现这个功能:添加、删除时,将与某一字段相同的值进行统计,并更新到另一个表中。
我的触发器如下,但结果是另一个表并未更新,请问这是为什么。
rl_contract是欲添加、删除数据的表。client_ywy是要更新的表。
添加触发器:
declare @str_code varchar
declare @int_count integer
declare @errno integer,@errmsg varchar(255), @numrows int
select @numrows = @@rowcount
if @numrows = 0 return
select @str_code= inserted.client_code from inserted
select @int_count=count(*) from rl_contract where client_code=@str_code
select @int_count=@int_count+count(*) from inserted where client_code=@str_code
update client_ywy set times=@int_count where client_code=@str_code
删除触发器:
declare @str_code varchar(10)
declare @int_count integer
declare @errno integer,@errmsg varchar(255)
select @str_code= inserted.client_code from inserted
select @int_count=count(*) from rl_contract where client_code=@str_code
select @int_count=@int_count-count(*) from inserted where client_code=@str_code
update client_ywy set times=@int_count where client_code=@str_code
if @@error <> 0 goto error
return
error: raiserror @errno @errmsg
rollback transaction