如果设置触发器执行顺序.

表Writing_Info里有触发器Writing_Taxis_getWritingTaxis如下

---自动在插入新作品的时候创建作品的排行
CREATE TRIGGER Writing_Taxis_getWritingTaxis ON [dbo].[Writing_Info]
FOR INSERT
AS

begin
insert writing_taxis (taxisCategoryid,writingid) (select a.taxiscategoryid,b.writingid from Writing_taxis_category a,inserted b)
end

表writing_chapter里有触发器Writing_Info_getLength如下

----自动修改文章长度
CREATE TRIGGER Writing_Info_getLength
ON Writing_chapter
For insert,update
as
if @@rowcount=0 return

if exists(select a.writingid from inserted a,writing_info c where a.writingid=c.writingid)

begin
update c set c.length=c.length+a.length from inserted a,writing_info c where a.writingid=c.writingid
end

当没有第一个触发器的时候,可以正常的根据writing_chapter里的length统计出作品的长度并且存放到writing_info这个表里.但是加上第一个触发器后,每次更新writing_chapter表的时候,会把writing_info里的length这个字段的值给清空.很是郁闷.请教怎么解决?


---------------------------------------------------------------

指定触发的顺序就可以了:
exec sp_settriggerorder
@triggername = 'Writing_Taxis_getWritingTaxis'
, @order = 'first'
, @stmttype = 'insert'


exec sp_settriggerorder
@triggername = 'Writing_Info_getLength'
, @order = 'last'
, @stmttype = 'insert'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值