• 数据库札记(二)


    触发器不能用EXEC命令调用,而是在用户执行Transact-SQL语句时激活。数据操作语言(DML)触发器在

    INSERT、UPDATE和(或)DELETE语句上激发。SQL Server能阻止不符合严格要求的数据修改,因为SQL Server

    将触发器作为事务来对待。由于触发器被当作事务对待,所以只要在代码的相应位置添加一条ROLLBACK命令

    ,就可以阻止记录通过触发器。ROLLBACK命令强制数据库服务器停止处理修改操作,并禁止当前事务,进而

    忘了该事务曾经发生过。从这个意义上说,可以将触发器理解为数据库看门狗。


    INSERT触发器可以用来修改,甚至拒绝接受正插入的记录,甚至可以用来级联对数据库中的其他表的修改操

    作。每当有人用INSERT语句在表中创建一条新记录时,INSERT触发器将激发。一旦用户试图在表中插入一条

    新记录,SQL Server就将这条新记录复制到数据库内的一个表(触发器表)和内存中存储的一个特殊表(插入

    表),新记录在这个两个表中同时存在:触发器表和插入表。插入表中的记录应该与触发器表中的记录完全

    相同。当需要在整个数据库内将修改结果级联到其他表时,插入表是个非常重要的表。


    DELETE触发器用于约束用户能够从数据库中删除的数据。添加了DELETE触发器后,SQL Server将正被删除的

    记录转移到内存中的一个逻辑表(删除表),因此记录并没有彻底消失,而且仍可以在代码中引用它们。这类

    似于回收站,但删除表在事务结束之后自动清除,回收站要我们手工清除。


    UPDATE触发器用来约束用户所发布的UPDATE语句。这种类型的触发器专门用于约束用户能修改的现有数据。

    UPDATE触发器所采用的方法组合了INSERT和DELETE触发器所采用的方法。IF UPDATE用来检查单个列上发生

    的更新。IF UPDATE不仅可以用在UPDATE触发器中,还可以用在INSERT触发器中,不必尝试在DELETE触发器

    中使用IF UPDATE语句,因为DELETE语句并不修改具体的列。

  • 相关阅读:
    网络科学导论【第二章】读书脑图
    稳定匹配
    Machine learning(3-Linear Algebra Review )
    Machine learning(2-Linear regression with one variable )
    Machine learning(1-Introduction)
    1710. Maximum Units on a Truck (E)
    0729. My Calendar I (M)
    0105. Construct Binary Tree from Preorder and Inorder Traversal (M)
    0746. Min Cost Climbing Stairs (E)
    0128. Longest Consecutive Sequence (M)
  • 原文地址:https://www.cnblogs.com/njucslzh/p/1900586.html
Copyright © 2020-2023  润新知