本帖最后由 MoreQuestion 于 2013-03-29 12:55:55 编辑

解决方案 »

  1.   

    CREATE TRIGGER TRITest
    ON tb_trigger_test
    FOR UPDATE,DELETE,INSERT 
    AS 
    BEGIN
    IF UPDATE(trigger_test_value)
    BEGIN
    IF EXISTS(SELECT 1 FROM DELETED)--更新
    BEGIN
            IF EXISTS(SELECT 1 FROM INSERTED a INNER JOIN DELETED b ON a.trigger_test_id=b.trigger_test_id WHERE a.trigger_test_value<b.trigger_test_value)
             ROLLBACK TRAN  
    END                         
    ELSE --插入
    BEGIN
    IF EXISTS(SELECT 1 FROM INSERTED WHERE trigger_test_value<0)
    ROLLBACK TRAN  
    END  RETURN
    END
    --删除
    IF EXISTS(SELECT 1 FROM DELETED WHERE trigger_test_value<>0)
    ROLLBACK TRAN

    END
      

  2.   


    就用ROLLBACK TRAN这句话就可以不让操作了?