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


    今天学习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  数据库触发器使用 【二】}中写出来。如果有什么错误的地方请大家在评论区指正,先谢过。

  • 相关阅读:
    破解Mac版MyEclipse-2017-ci3
    JAVA8 十大新特性详解
    Java 1.8 时间日期库的20个使用示例
    20180206 反射中模块化开发的上课思路
    反射在数据库读写中的应用
    浅谈多线程并发
    Mac OS Git 安装
    MAC node + git + bower 简单安装
    Mac OS 下 eclipse中文乱码解决方法(eclipse for mac 中文乱码)
    【精华】MacOS 10.13.2 环境下安装eclipse
  • 原文地址:https://www.cnblogs.com/KTblog/p/4190673.html
Copyright © 2020-2023  润新知