if exists (select 1 from sysobjects where [name]='trig_after') 
drop trigger trig_after 
go 
create trigger trig_after 
on userinfo 
for UPDATE 
as 
begin
if ...
  ----如果不合理 不修改,怎么写代码 
  begin
  end
else
  ----如果合理 修改 
  begin
  endend
GO

解决方案 »

  1.   

    --sql 中用创建trigger完善约束 
    if exists (select 1 from sysobjects where [name]='trig_after') 
    drop trigger trig_after 
    go 
    create trigger trig_after 
    on userinfo 
    for UPDATE 
    as 
    --如果不合理,不用判断,直接判断合理的就可以了。
    if a=b  
    begin
    ......
    end
      

  2.   

    create table ta (id int,name varchar(50))
    insert into ta select 1,'a'go
    create trigger trig_after
    on ta
    for UPDATE
    as 
    begin
    if exists(select 1 from inserted where len(name)<3)
        rollback
    endupdate ta set name='abc' where id=1--如果修改后位数小于3,就不修改
    update ta set name='ab' where id=1
    --事务在触发器中结束。批处理已中止。
    select * from taid name
    1 abc