我写了一个触发器,判断界面输入数据是否合法,代码是这样写的;
----------------------
CREATE TRIGGER [usually_over] ON [dbo].[K_Over] 
FOR INSERT, UPDATE
AS
   /*输入数据的合法性在Client端检查*/
   /*检查是否和已有数据冲突
    判断条件:请假开始时间和结束时间与原来数据有交集*/   
   if exists(select i.a0188 from inserted i
           where i.over_time>2 and i.over_type='3') 
   begin
      raiserror('输入的加班时间超过2小时!',16,1)
      rollback transaction 
      return
   end     
return
--------------------
这样做后功能确实达到了,但是只要弹出框后就写不进数据了,但是在特殊情况下,我想就算超过了数据限制也要可以写入。请问有什么办法吗

解决方案 »

  1.   

    1、暂时关闭触发器 alter 
    2、程序直接判断,不要用触发器
    3、给表加一个标志位,触发器根据标志位判断
      

  2.   


    ALTER TABLE trig_example DISABLE TRIGGER trig1 ;
      

  3.   

    ---禁用   
    alter   table   表名   disable  trigger  触发器名   
    ---起用   
    alter   table   表名   enable   trigger   触发器名