又是触发器的问题所引发的问题, 请指教
我的问题是这样的:   
 首先我用dataset绑定了一个表   Tab_a 
 其中Tab_a   中有一个   字段   X_OnOff   (其值为0   或   1,缺省为0)   
 现在我有一个用户界面   通过上面绑定的Dataset更新数据到Tab_a中,   
 问题是: 
 如果X_OnOff   为1   时   如何让前面的更新   失效   (也就是   说   X_OnOff为1 
 的记录   将保持先前的记录不变)   
 这样是否可以通过   对   Tab_a   的   UPDATE   触发事件来实现,如果可行,如何写 
 这个事件   
 谢谢先   
 hellowork(一两清风)    
 create   trigger   trg_update_Tab_a   ON   Tab_a 
 for   UPDATE 
 as 
 if   exists(select   1   from   DELETED   where   X_OnOff   =   1) 
 begin 
             ROLLBACK   TRANSACTION         /*回滚触发器,使更新失效*/ 
             RETURN            /*返回*/ 
 end     
 上面的问题是解决了,但是新的问题又出现了   
 现在的问题是: 
 如果用户对于个别的纪录(特殊情况)要求恢复   X_OnOff   到   0的状态   , 
 此时   任何更新却不能生效   
 该如何修改     
------解决方案--------------------create trigger trg_update_Tab_a ON Tab_a 
 for UPDATE 
 as 
 if exists(select 1 from DELETED where X_OnOff = 1) 
 or exists(select 1 from inserted i join deleted d on d.主键 = i.主键  
 	where i.X_OnOff = 0 and d.X_OnOff = 1 and i.主键 in (个别的纪录))   
 begin 
     ROLLBACK TRANSACTION   /*回滚触发器,使更新失效*/ 
     RETURN    /*返回*/ 
 end
------解决方案--------------------说说你的个别记录特殊需求是什么样的?   
 hellowork(一两清风)的触发器是针对所有的X_OnOff = 1记录修改做了回滚操作。 
 排除掉你的特别操作即可的 
------解决方案--------------------新增个表 
 create table Tab_a_con( 
 value int default (0)) 
 触发器改成 
 create trigger trg_update_Tab_a ON Tab_a 
 for UPDATE 
 as 
 if exists(select 1 from DELETED where X_OnOff = 1) and not exists (select * from Tab_a_con where value = 1) 
 begin 
 ROLLBACK TRANSACTION /*回滚触发器,使更新失效*/ 
 RETURN /*返回*/ 
 end   
 特殊更新时  
 update Tab_a_con set value=1 
 update Tab_a set X_OnOff=0 where xxxxxxxx 
 update Tab_a_con set value = 0
------解决方案--------------------用户对于个别的纪录(特殊情况)回滚到 X_OnOff 到 0的状态
------解决方案--------------------create trigger trg_update_Tab_a ON Tab_a 
 for UPDATE 
 as 
 if exists(select 1 from DELETED where X_OnOff = 1)  
    and exists(select 1 from insertED where X_OnOff = 1)--加的 
 begin 
     ROLLBACK TRANSACTION   /*回滚触发器,使更新失效*/ 
     RETURN    /*返回*/ 
 end 
 --如果有标识列,可简化条件
------解决方案--------------------或者专门建个用户,触发器里加上对用户的判断。user_name()