在SQLserver数据库中触发器中大致分为两种:DDL、DML触发器,即系统触发器与表触发器,系统触发器是对数据库对象进行操作的触发器,表触发器是对表格的增删改时候所进行的触发器。在这里我们就只说表的触发器。
表的触发器也分为两种,分别为:instead of、after(for);分别在表操作之前与表操作之后进行触发。而且两种触发器都有三个触发条件:insert、delete、update。基本语法为:
create trigger tgr_name on table_name with encrypion -–加密触发器(一般不用写) for--触发器类型(如:instead of/after/for) update--触发类型(如:insert/update/delete) as begin --Transact-SQL end
触发器是一种特殊类型的存储过程,但它不同于存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。触发器有两个特殊的表:插入表(instered表)和删除表(deleted表)。这两张是逻辑表也是虚表。由系统在内存中创建者两张表,不会存储在数据库中。而且两张表的都是只读的,只能读取数据而不能修改数据。这两张表的结果总是与被改触发器应用的表的结构相同。当触发器完成工作后,这两张表就会被删除。其中两张表与触发条件的关系:
插入表(insered) | 删除表(delete) | |
插入操作(insert) | 插入表中存放插入的记录 | |
修改操作(update) | 插入表中存放更新后的记录 | 删除表中存放更新前的记录 |
删除操作(delete) | 删除表中存放被删除的旧纪录 |
原文地址:https://www.cnblogs.com/Bloghjb/p/9359299.html
时间: 2024-11-10 00:18:29