你没有给 @TA002 初始化空 ,他目前处于NOKOWN 类型, 属于 null 
在执行select @TA002=TA002 from inserted  的时候 数值就为null 所以没结果

解决方案 »

  1.   

    CREATE trigger test_insert
    on dbo.test
    after INSERT
    as
    begin
    if exists(select * from inserted where TA002 not in(select ta002 from test))
    rollback
    end 
      

  2.   

    CREATE trigger test_insert on dbo.test after INSERT 
    as 
    begin
      if not exists (select 1 from test where TA002 = (select TA002 from inserted))
         begin  
           ROLLBACK transaction 
         Print ('输入出错了,请重新输入') 
      end 
    end不过看你的需求,需要对test的ta0002列建立个外键表
      

  3.   

    我的要求触发器判断两个字段值TA002和TA003,当(TA002='003' and TA002='004') and TA003='N'不可以向表中写入数据返回错误信息,
      

  4.   

    运行insert时总是提示"当IDRNTITY_INSERT设置OFF时,不能向表'test'中的标识列插入显式值"