当前位置: 代码迷 >> Sql Server >> SQL2008,触发器:调试有效,执行无效!该如何解决
  详细解决方案

SQL2008,触发器:调试有效,执行无效!该如何解决

热度:328   发布时间:2016-04-24 09:47:52.0
SQL2008,触发器:调试有效,执行无效!
奇了个怪了.

创建一个after insert 触发器

直接按F5执行 没有达到我的目的,而且就好像触发器根本没被触发的感觉

用调试执行,无论是步过,步入,或者直接让其恢复运行.都能正常触发触发器

触发器内用了游标,大致语句如下

        declare _Cursor cursor GLOBAL for select   A _c1,A_c2  from inserted A

        open _Cursor

declare @var1 int

declare @var2 int

        while @@FETCH_STATUS = 0
begin
fetch next from _Cursor into @var1 ,@var2 
        --访问游标操作......
end

        close _Cursor

deallocate _Cursor


我不知道这样的语句为什么会导致,调试模式下执行有效.直接执行无效呢

小弟新手,分比较少,希望各路英雄不吝赐教,小弟感激不尽
------解决思路----------------------
1、注意一下权限问题,调试的权限跟实际的权限,看看差异的地方

建议不要在触发器中使用游标,因为它们可能会降低性能。 若要设计一个影响多行的触发器,请使用基于行集的逻辑,而不要使用游标。

参考 http://msdn.microsoft.com/zh-cn/library/ms190752.aspx