zoukankan      html  css  js  c++  java
  • 数据库--触发器

    触发器:

    (1)触发器概念:通过事务来触发某一操作

    (2)触发器分类:

    ①After触发器:这类触发器是在记录已经改变完之后(after),才会被激活执行,它主要是用于记录变更后的处理或检查,一旦发现错误,也可以用 Rollback Transaction语句来回滚本次的操作。

    ②Instead Of触发器:这类触发器一般是用来取代原本的操作,在记录变更之前发生的,它并不去执行原来SQL语句里的操作(Insert、Update、Delete),而去执行触发器本身所定义的操作。

    (3)触发器常识:

    ①在SQL Server里,每个DML触发器都分配有两个特殊的表,一个是Inserted表,一个是Deleted表。它们两个存在于数据库服务器的内存中,是由系统管理的逻辑表,是两个临时表,而不是真正存储在数据库中的物理表。用户对这两个表只有读取的权限,没有修改的权限。

    ②Inserted和Deleted两个表的作用:
    Inserted:对于插入记录操作来说,插入表里存放的是要插入的数据;对于更新记录操作来说,插入表里存放的是要更新的记录。
    Deleted:对于更新记录操作来说,删除表里存放的是被更新记录;对于删除记录操作来说,删除表里存入的是被删除的旧记录。
    例子:

    ALTER    TRIGGER [dbo].[delOrderdrfdetail] ON [dbo].[OrderBill]
    FOR delete
    AS
    delete from OrderDraft where orgsmb_id in (select smb_id from deleted)

    AFTER跟FOR相同,不可在视图上定义AFTER触发器,更多时候写的都是for

    墨者看遍天下皆是丹青,测试看尽万物皆是bug
  • 相关阅读:
    Javascript Read Excel
    Rest API 操作List Items
    web安全入门课程笔记——SQL漏洞分析与利用
    web安全入门课程笔记——网站基础与信息搜集
    博客迁移通知
    Python查找指定文件
    博客园写作避坑指南【持续更新】
    Changes of user relationship in AD can't be correctly synchronized to SCSM
    博客地址改为 https://0xcreed.jxustctf.top
    AI:WEB:1 Walkthrough
  • 原文地址:https://www.cnblogs.com/striver-dl/p/13920439.html
Copyright © 2011-2022 走看看