zoukankan      html  css  js  c++  java
  • SQL中Inserted 和Deleted表 以及触发Trigger

    1. 什么是Inserted 和Deleted表
    2. 他们有什么用
    3. trigger 的简单实用

    1.什么是Inserted 和Deleted表

       当插入数据的时候,其实是同时向目的表 和inserted表中插入数据,当没有出错时,向数据库中插入提交,inserted表中有刚插入的信息,

      insert into student ([name],defaltage) output inserted.IDs values('{0}',{1}) 这里输出 刚插入的ids

      如果出错,就不向数据库中插入了 rollback

     这同时也就说明了 为啥identity 标示当出错的时候,identity不回滚,因为identity列 执行了插入了 identity 增长了

     Deleted 也是同样,当删除时,其实是把数据放到Deleted表中,如果删除过程中没有出错,就删除deleted表 ,如果出错,就不删除,把数据重新放到表里

    2.他们的用处 一般就是用来看看删除和插入的信息

    3.Trigger简单用法

     1 --TblClass 中有Id classname classdes
     2 --创建一个和TblClass表结构一模一样的表
     3 select top 0  * into TblClassBackup from TblClass
     4 
     5 select * from TblClassBackup
     6 
     7 --创建一个删除触发器
     8 --当TblClass删除数据的时候,都插入备份表中
     9 create trigger tri_delete_tblclass on TblClass
    10 after delete
    11 as 
    12 begin
    13     insert into TblClassBackup(tClassName,tClassdesc) 
    14     select tClassName,tClassDesc from deleted    
    15 end

    delete from TblClass where tClassName='高二一班'
    select * from TblClassBackup

    会发现,刚才删除的数据,在备份表中

    插入触发器同理

      

  • 相关阅读:
    Leetcode:50. Pow(x, n)
    loj 2759「JOI 2014 Final」飞天鼠
    bzoj 3569 DZY Loves Chinese II
    CF407D Largest Submatrix 3
    bzoj 3837 pa2013 Filary
    bzoj 4722 由乃
    CF1105E Helping Hiasat
    loj 6043「雅礼集训 2017 Day7」蛐蛐国的修墙方案
    luogu P2605 [ZJOI2010]基站选址
    luogu P3226 [HNOI2012]集合选数
  • 原文地址:https://www.cnblogs.com/nanxiaoxiang/p/5141450.html
Copyright © 2011-2022 走看看