码迷,mamicode.com
首页 > 数据库 > 详细

SQL触发器

时间:2016-08-15 17:14:56      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

一 简介

    触发器是一种特殊的存储过程,在对表进行插入、更新、删除的时候会触发执行。触发器一般用在check约束或者一些后续事务逻辑的处理。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。所以触发器可以用来实现对表实施复杂的完整性约束。

二 相关参数

    触发器触发的时候两个特殊的表:插入表(instered表)和删除表(deleted表)。这两张表的结构与被改触发器应用的表的结构相同,存储的数据是要进行操作的数据,当触发器完成工作后,这两张表就会被删除。Inserted表的数据是插入或是修改后的数据,而deleted表的数据是更新前的或是删除的数据。

 技术分享

 

三 Instead of 和 After触发器
  SQL Server2000提供了两种触发器:Instead of 和After 触发器。这两种触发器的差别在于他们被激活的同:
 Instead of触发器用于替代引起触发器执行的T-SQL语句。除表之外,Instead of 触发器也可以用于视图,用来扩展视图可以支持的更新操作。
 After触发器在一个Insert,Update或Deleted语句之后执行,进行约束检查等动作都在After触发器被激活之前发生。After触发器只能用于表。
 一个表或视图的每一个修改动作(insert,update和delete)都可以有一个instead of 触发器,一个表的每个修改动作都可以有多个After触发器。

四 触发器的添加,修改,删除,查看操作

4.1 添加创建语法

create trigger trigger_name
  on {table_name | view_name}
  {for | After | Instead of }
  [ insert, update,delete ]
  as
  sql_statement

4.2 修改语法

alter trigger trigger_name--类似于修改表结构

4.3 删除语法

drop trigger trigger_name

4.4 查看触发器

select * from sys.triggers

select * from sysobjects where xtype=‘TR‘
---- 查看单个触发器
exec sp_helptext ‘触发器名‘

五 触发器的简单实例

Create trigger [dbo].[tri_deletemember]
on [dbo].[Member]
for delete
as
declare @ID VARCHAR(150)
select @ID=ID from deleted
delete from MemCount where ID=@ID
delete from MemMoney where @ID=@ID

SQL触发器

标签:

原文地址:http://www.cnblogs.com/zoood/p/5773482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!