SqlServer触发器的基础知识

Posted 老瓷叙谈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer触发器的基础知识相关的知识,希望对你有一定的参考价值。

触发器的基础知识:
create trigger tr_name on table/view
{for | after | instead of } [update][,][insert][,][delete]
[with encryption]
as {batch | if update (col_name) [{and|or} update (col_name)] }

说明:
1 tr_name :触发器名称
2 on table/view :触发器所作用的表。一个触发器只能作用于一个表
3 for 和after :同义
4 after 与instead of :sql 2000新增项目afrer 与 instead of 的区别
After 在触发事件发生以后才被激活,只可以建立在表上 
Instead of 代替了相应的触发事件而被执行,既可以建立在表上也可以建立在视图上
5 insert、update、delete:激活触发器的三种操作,可以同时执行,也可选其一
6 if update (col_name):表明所作的操作对指定列是否有影响,有影响,则激活触发器。此外,因为delete 操作只对行有影响,所以如果使用delete操作就不能用这条语句了(虽然使用也不出错,但是不能激活触发器,没意义)。
7 触发器执行时用到的两个特殊表:deleted ,inserted
 deleted 和inserted 可以说是一种特殊的临时表,是在进行激活触发器时由系统自动生成的,其结构与触发器作用的表结构是一样的,只是存放 的数据有差异。

关于deleted 与inserted 数据的差异:
Inserted 存放进行insert和update 操作后的数据 
Deleted 存放进行delete 和update操作前的数据
注意:update 操作相当于先进行delete 再进行insert ,所以在进行update操作时,修改前的数据拷贝一条到deleted 表中,修改后的数据在存到触发器作用的表的同时,也同时生成一条拷贝到insered表中

以上是关于SqlServer触发器的基础知识的主要内容,如果未能解决你的问题,请参考以下文章

SqlServer基础之(触发器)

SQLServer2008基础教程的内容简介

SQL知识点

SQLServer数据库基础--E-R图三大范式数据库设计步骤

知识点4

SQL Server 2008 中文版标准教程 清晰扫描 PDF版 [121M]下载