翻看博客,发现居然没有触发器使用说明,现补上。
触发器触发的时候两个特殊的表:
插入表(插入表):插入表的数据是插入或是修改后的数据
删除表(删除表):删除表的数据是更新前的或是删除的数据
这两张表的结构与被改触发器应用的表的结构相同,存储的数据是要进行操作的数据,当触发器完成工作后,这两张表就会被删除。
<强>修改操作记录强> <强>插入表强> <强>删除表强> <>强增加(插入)记录强> <强>存放新增的记录强> <强> ............ 强> <强>删除(删除)记录强> <强> .............. 强> <强>存放被删除的记录强> <强>修改(更新)记录强> <强>存放更新后的记录强> <强>存放更新前的记录强>
<强> 强>
而不是触发器:用于替代引起触发器执行的t - SQL语句。除表之外,而不是触发器也可以用于视图,用来扩展视图可以支持的更新操作。
后触发器:在一个插入、更新或删除语句之后执行,进行约束检查等动作都触后在发器被激活之前发生后触发器只能用于表。
一个表或视图的每一个修改动作(插入、更新和删除)都可以有一个代替触发器,一个表的每个修改动作都可以有多个后触发器。
<强> 强>
<强> 强>
1添加创建语法
创建触发trigger_name 在{table_name | view_name} {后| |不是} (插入、更新、删除) 作为 sql_statement
2修改语法
改变触发trigger_name——类似于修改表结构
3删除语法
下降触发trigger_name
4查看触发器
从sys.triggers选择* select * from sysobjects xtype=癟R”——查看单个触发器exec sp_helptext“触发器名”
<强> 强> <强> 强>
- 1创建触发器、触发添加内容 创建触发器(dbo)。(s1) 在[dbo]。[一] 对于插入 作为 声明@ id VARCHAR (50) 声明@ name varchar (50) 声明@nos INT 选择@ ID=(ID), @ name=a.Name @nos=4幼魑桓鍪? 插入B ( 集成电路, CName, 没有 ——援助——这一列值是自动生成的 ) @ name值(@ id, @nos) ——2删除内容,触发级联删除 创建触发器(dbo)。[tri_deletemember] [dbo][员]。 为删除 作为 声明@ id VARCHAR (150) 从删除选择@ ID=ID 删除从MemCount ID=@ ID 删除从MemMoney @ id=@ id引用><强> 强>
SQL触发器