日期:2014-05-17  浏览次数:20363 次

insert并没有成功,但FOR INSERT的触发器却执行了
本帖最后由 zyaim 于 2012-11-06 11:20:03 编辑 如题。
按我的理解,for insert的触发器一定要是在插入成功之后才执行的,可是,实际情况是并没有插入成功,只是去尝试插入,但触发器还是执行了。请教一下,这可能是什么原因呢?
------最佳解决方案--------------------
我遇到过一起情况,虽然这种情况发生机会其实很小,但是还是检查一下吧。就是表中有不止一个触发器,其中一个是删除的,这是真实情况,我插入一条数据,提示成功了,但是表里面没数据,找了很久才发现原来有人搞了个触发器,插一条删一条。
------其他解决方案--------------------
引用:
插入时没有错误提示,我现在猜想,可能是插入之后又把插入的记录删除了,所以,去表里看结果的话,就好像没有插入过一样。
你的猜想和1楼其实差不多,你好好检查下你这个表还有没有其他触发器
------其他解决方案--------------------
有insert语句就会触发,但是执行之后会回滚。
------其他解决方案--------------------
如果是因为插入出错而未插入成功,for insert的触发器是不可能被执行的
------其他解决方案--------------------
谢谢,你误会我意思了。我纠结的不是插入失败,我纠结的是插入失败了,但为什么FOR INSERT的触发器却依旧执行

------其他解决方案--------------------
create TRIGGER tr_xxxxx
   ON table1
   FOR INSERT
AS 
BEGIN
.......
------其他解决方案--------------------
怪了。有尝试插入,但是并未插入成功,可是for insert的触发器还是执行了,也并没有回滚。
(我都成祥林嫂了)
------其他解决方案--------------------
插入时没有错误提示,我现在猜想,可能是插入之后又把插入的记录删除了,所以,去表里看结果的话,就好像没有插入过一样。
------其他解决方案--------------------
引用:
插入时没有错误提示,我现在猜想,可能是插入之后又把插入的记录删除了,所以,去表里看结果的话,就好像没有插入过一样。
兜个圈回来怎么还是我的猜想啊?
------其他解决方案--------------------
引用:
引用:插入时没有错误提示,我现在猜想,可能是插入之后又把插入的记录删除了,所以,去表里看结果的话,就好像没有插入过一样。兜个圈回来怎么还是我的猜想啊?

哈哈,一楼威武
------其他解决方案--------------------
我比较在乎你问题找到没?
------其他解决方案--------------------
引用:
我比较在乎你问题找到没?

谢谢在乎,后来没去鸟那个问题了,越鸟越头疼,我饶道行驶了。