zoukankan      html  css  js  c++  java
  • [SQL2005触发器学习]1、初识触发器

    记得刚接触触发器是5年前的事了,那时候天天写触发器和存储过程,但是最近一段时间面试有些东西竟然忘记了。在此重新学习与认识,顺便学习下SQL2005的一些新特性。
    1、触发器的概念
        触发器可以理解为是针对数据表(或数据库)的特殊的存储过程。当这个表发生了Insert,Update或者Delete操作时,会自动激活执行,可以处理各种复杂的操作。
        在SQL2005中,触发器有了新功能:在数据表或数据库发生Create、Alter或Drop操作时,也会自动激活执行了。

    2、触发器的作用或用途
        a. 完成比约束更复杂的数据约束,保证数据的完整性.
        b. 检查做执行的SQL语句是否被允许.
        c. 当这个数据被修改了,如果有其他数据表数据需要相应改变的,修改其他数据表里的数据.
        d. 调用更多的存储过程(约束是不能调用存储过程的)
         f.  更改原本要执行的SQL语句 
        g. 防止数据表结构更改或数据表被删除(使用SQL2005的新功能 Create,Alter,Drop 触发器)
    3、触发器的种类
        触发器共分为DML触发器和DDL触发器两大类。
        DML触发器是当数据库服务器中发生数据操作语言(Data Manipulation Language)事件时执行的存储过程。大概也就是数据库表发生Insert、Update、Delete操作时引发的触发器。DML触发器又包含 After触发器和 Instead 触发器。
        DDL触发器是在响应数据定义语言(Data Definition Language)事件时执行的存储过程。DDL触发器一般用于执行数据中的管理任务。如防止表结构被修改。
    4、DML触发器的工作原理
        在SQL SERVER 2005里,为每个DML触发器都定义了两个特殊的表,一个是插入表(Inserted),一个是删除表(Deleted)。这两个表是建立在数据库服务器的内存中的,是由系统管理的逻辑表,不是真正存储在数据库中的物理表。用户对这两个表只有读取权限,没有修改权限。
        这两个表的结构与触发器所在的表的结构完全一样,当触发器的工作完成后,这两个表也将自动从内存中删除。
        插入表(Inserted)里存放的是 要插入的记录和要更新的记录(Update时)。
        删除表(Deleted)里存放的是   更新前的记录(Update时)和要删除的记录。

    触发器动作 Inserted表 Deleted表
    Insert 存放要插入的记录  
    Update 存放要更新的记录 存放更新前的记录
    Delete   存放要删除的记录
  • 相关阅读:
    pycharm基本设置
    pycharm破解
    jupyter
    gpu监控收藏
    监控收藏
    k8s 亲和性和反亲和性 以及污点和容忍
    通过服务器 远程管理卡进行装机
    7.11实习培训日志-Git Linux
    ## HashTable和HashMap的区别
    springboot2 -广播式WebSocket
  • 原文地址:https://www.cnblogs.com/heimirror/p/1998242.html
Copyright © 2011-2022 走看看