zoukankan      html  css  js  c++  java
  • 触发器实例

      这次用到触发器的主要功能就是生成备份表,

      删除表[dbo].[T_Op_Class]中的数据时,检查是否存在备份表[TRI___AutoBackup_T_Op_Class],

      如果存在,则直接新增删除的数据到备份表,如果不存在,则先新增备份表再新增删除的数据

    create  trigger [dbo].[TRI___AutoBackup_T_Op_Class] ON [dbo].[T_Op_Class] for delete as   

      begin

         //如果不存在表名'__AutoBackup_T_Op_Class',就新增备份表'__AutoBackup_T_Op_Class'    

         if not exists(SELECT * FROM sys.tables WHERE name='__AutoBackup_T_Op_Class')

         //删除[dbo].[T_Op_Class]表的数据时,把删除是数据新增到备份表,并把当前时间写入备份表中     

        select *, getdate()as __AutoBackupDatetime into __AutoBackup_T_Op_Class from T_Op_Class where 1<>1 

         insert into __AutoBackup_T_Op_Class select *,getdate() from deleted;  

       end


    原表:

     通过触发器新增的备份表:

    SQL代码:

    1 create trigger [dbo].[TRI___AutoBackup_T_Op_Class] ON [dbo].[T_Op_Class] for delete as 
    2  begin 
    3 if not exists(SELECT * FROM sys.tables WHERE name='__AutoBackup_T_Op_Class') 4 select *, getdate()as __AutoBackupDatetime into __AutoBackup_T_Op_Class from T_Op_Class where 1<>1 5 insert into __AutoBackup_T_Op_Class select *,getdate() from deleted; 6 end


    PS:有些数据删除后需要备份,如果用sql直接实现的话很麻烦,但是用触发器就大大的提高了效率,只需几句SQL就可以实现很多功能。

     

  • 相关阅读:
    c# 三种取整方法 向上取整 向下取整 四舍五入
    Lambda表达式对DataRow处理
    Dapper数据库字段和model属性映射
    union limit
    北邮五十题
    搜索____深搜 学易错点
    动态规划____有重叠子问题的搜索,都可以转为记忆化搜索
    64位 __int 与 long long写法
    做做 卡特兰数 与 卡米歇尔数
    vector 有点麻烦啊 能简单点么?
  • 原文地址:https://www.cnblogs.com/sunny0515/p/3414785.html
Copyright © 2011-2022 走看看