zoukankan      html  css  js  c++  java
  • sqserver2008触发器

    @参考博文

    先上代码

    先建个表用于测试

    CREATE TRIGGER INSERT_forbidden on s after INSERT
    AS
    BEGIN
        RAISERROR('禁止向s中插入数据',2,3)
        ROLLBACK--不加这一句不会回滚,抛错后将直接插入
    END

     上述触发器执行情况:当向s表插入数据时禁止插入,插入时抛错(raiserror)如下

    语法:

    CREATE TRIGGER trigger_name
     ON table_name
     [WITH ENCRYPTION]
      FOR | AFTER | INSTEAD OF [DELETE, INSERT, UPDATE]
     AS 
    BEGIN -- T
    -SQL语句
    END
    GO --with encryption 表示加密触发器定义的sql文本 --delete,insert,update指定触发器的类型

     20180815:解决sqlserver无before问题,用instead of替换

    CREATE TRIGGER INSERT_forbidden on reg instead of INSERT
    AS
    BEGIN
        if EXISTS(select 1 from reg where regStr=(select regstr from INSERTED))BEGIN
                 RAISERROR('禁止向注册表中插入重复数据',1,1)
                    ROLLBACK--不加这一句不会回滚,抛错后将直接插入
        END ELSE BEGIN
            INSERT into reg (regStr) select regStr from INSERTED
        END   
    END

    测试

    INSERT into reg VALUES('4')

    测试前

    第一次测试结果:

    第二次测试结果

  • 相关阅读:
    work_7_Boolean和boolean,基本类型和包装类型
    work_06_服务器上传图片错误
    work_05_64未随机id生成器
    work_04_谷歌验证码工具Kaptcha
    vue.js_13_vue的搭建
    每日一java(割草机)
    work_03_常见jq问题处理
    work_02_css样式
    java 27
    java 27
  • 原文地址:https://www.cnblogs.com/yanan7890/p/9284927.html
Copyright © 2011-2022 走看看