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

SQL Server 数据库DML触发器 【一】

时间:2014-12-28 22:10:17      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

今天学习SQL Server数据库中DML触发器(DDL触发器以后有时间继续学习)。

 

当删除一条创建有触发器的表中的内容时,触发器执行SQL语句。

 

1.首相先创建一张表,表名称是 [Test] , 内有三个字段,分别是 [Name], Sex, Place.

1 use inter
2 create table Test
3 (
4     [Name] varchar(20) not null,
5     Sex    varchar(20) not null,
6     Place  varchar(20) not null
7 )

 

2.然后为表中的字段添加内容:

1 use inter
2 insert into Test ([Name], Sex, Place) values (张三, , 北京)
3 insert into Test ([Name], Sex, Place) values (李四, , 上海)
4 insert into Test ([Name], Sex, Place) values (王五, , 广州)

 

添加之后截图:

技术分享

 

 

3.创建触发器:

 1 set ANSI_NULLS ON
 2 set QUOTED_IDENTIFIER ON
 3 GO
 4 -- =============================================
 5 -- Author:         H_F_us
 6 -- Create date:    2014年12月28日20:29:47
 7 -- Description:    测试触发器
 8 -- =============================================
 9 ALTER TRIGGER [dbo].[First_tg]
10    ON  [dbo].[Test]
11    AFTER DELETE
12 AS 
13 BEGIN
14 
15 insert into Test ([Name], Sex, Place) values (Test, Test, Test)
16 
17 END

 

4.之后,如果执行一条删除语句,如:

 1 delete from Test where [Name] = 张三 

 

5.则触发器被触动,执行下面SQL语句:

1 insert into Test ([Name], Sex, Place) values (Test, Test, Test)  -- 触发器中事先写好的SQL语句

 

6.语句执行之后,截图:

技术分享

 

 

*解说:

1.触发器SQL语句中 ALTER TRIGGER 后面跟的是触发器的名称,在符合SQL命名规范的前提下,任意选取。

2.触发器SQL语句中 ON 后面跟的是要创建触发器表的表名称。

3. AFTER之后是执行哪种操作后激活触发器。 delete 、insert、 update,三种操作类型,至少触发器中要真有一种,也可以是三种的任意组合,顺序不受限制。

4.这个例子使用的是delete操作类型,其他操作类型同上。

5.在SQL触发器中,不仅仅是只有AFTER 触发器 还有一种是 INSTEAD OF 触发器 。前者是在SQL语句执行之后,激活触发器,也就是今天所写的这一种情况。而后者是在SQL语句执行之前激活触发器。

 

 

INSTEAD OF 触发器的使用,会在 { SQL Server  数据库触发器使用 【二】}中写出来。如果有什么错误的地方请大家在评论区指正,先谢过。

 

SQL Server 数据库DML触发器 【一】

标签:

原文地址:http://www.cnblogs.com/KTblog/p/4190673.html

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