求一触发器问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:44:23
CREATE TRIGGER Stat_Tickets ON dbo.UserTicket
for update,insert
AS
declare @actid int,@ticketid int,@ticketnum int
select @ticketnum=sum(num) from UserTicket where actid=@actid
update Act set ticketnum=ticketnum-@ticketnum,averagenum=averagenum+@ticketnum where id=@actid

在更新或者插入UserTicket 表时 触发器怎么无效 急!!请知道的大虾帮忙解决下
jpylj 你哪个吧我的 表名都改啦 报错 deletes 无效

触发器类型呢?AFTER?

你用的什么数据库,我觉的你写的语句好像有错呀,补充一下问题,

触发器关注字段插入动作如果为空或者修改动作没有变更是不被触发的

CREATE TRIGGER Stat_Tickets ON dbo.UserTicket
for update,insert
AS
declare @actid int,@ticketid int,@ticketnum int
select @ticketnum=sum(num) from deletes where actid=@actid
update Act set ticketnum=ticketnum-@ticketnum,averagenum=averagenum+@ticketnum where id=@actid
试试看,我没测试

既然是update和insert触发器,@actid应该都从inserted表取吧?

CREATE TRIGGER Stat_Tickets ON dbo.UserTicket
for update,insert
AS
declare @actid int,@ticketid int,@ticketnum int
select @actid=actid from inserted
select @ticketnum=sum(num) from UserTicket where actid=@actid
update Act set ticketnum=ticketnum-@ticketnum,averagenum=averagenum+@ticketnum where id=@actid

注意
select @actid=actid from deleted
语句中actid是UserTicket 表里应该有的字段。