触发器是一个特殊的存储过程,主要是通过事件来触发执行。 根据造作数据库结构类型来分有两类: 根据触发的先后顺序也可分为两类: INSTEAD OF触发器:在sql相关语句命令执行之前就被调用的触发器。 CREATE TRIGGER trigger_name –触发器名称 ON table_nqame –触发的表 [AFTER/INSTEAD OF] –触发的时间 (FOR) [DELETE, INSERT, UPDATE] –选择触发器类型 AS –触发后要做的语句 对此上两个触发器举例: 在数据库创建数据库然后创建两表 Books表 BookTypes表 after触发器是在对表进行操作之后触发的。创建新增触发器语句 需求:在新增书籍的时候,对应的类型表数据要更新 手动新增一个书籍分类,并且Nums为0,然后新增一本书,这个时候书籍分类的数量就会自动更新 instead of是在对表操作之前触发的。 模拟需求:删除BookTypes表其Books表的对应的书籍类型也要删除 创建触发器 执行sql语句删除我们刚刚新增的书籍类型及书籍 delete from BookTypes where id=4 结果是对应的书籍类型记录已被删除,书籍类型下的书籍也被删除了。
什么是触发器?
从简要的概述我们有以下问题值得深思:
什么是存储过程?
存储过程是一个预编译的SQL语句,只需创建一次,以后在程序中就可以调用多次。
特殊在哪里?
通过事件来触发执行,它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化,也可以进行联级操作。
所以通过以上概述可知:
触发器与存储过程概念上有类似之处,但触发器比存储过程的优势在于,它能被事件自动触发,触发引起的事件也是为了维护表结构的完整性和一致性,是规范数据结构操作的一种。触发器常用的分类有哪些?
DML触发器:当数据库中发生数据操作,使用DML语言时将调用DML触发器,DML事件包括对表或视图的增删改,因而DML触发器也可以分为三种类型:INSERT触发器、UPDATE触发器和DELETE触发器。
DDL触发器:当数据库使用DDL语言对数据库表结构进增删改时,触发器就会被触发。但其目的主要是为了执行对数据库的管理操作。
AFTER触发器:在sql相关语句命令执行之后才被调用的触发器。
相关语法创建语法区别以加粗如下:
T-SQL语句
GO –结束标记
字段
字段含义
字段类型
ID
书籍编号,自增
int
Name
书名
nvarchar(50)
TypeID
书籍类型ID
int
字段
字段含义
字段类型
ID
类型编号,自增
int
Name
类型名
nvarchar(50)
Nums
该类型下书籍数量
int
练习AFTER触发器
--创建触发器语法 --create trigger 触发器名称 -- on 表名 -- for 操作 --as 需要执行的sql语句 create trigger tgr_bookInsert on Books for insert as --定义变量,存储新增书籍的类型ID declare @typeID int --定义变量存储书籍类型的数量 declare @typeNums int --找到存储新增书籍的类型ID select @typeID=typeID from inserted --计算出对应书籍类型的数量 select @typeNums=count(*) from Books where typeID=@typeID --更新BookTypes表 update BookTypes set Nums=@typeNums
练习INSTEAD OF触发器
create trigger tgr_deleteBookType on BookTypes instead of delete as --定义变量,存储删除类型ID declare @typeID int select @typeID = id from deleted --删除类型之前删除对应的书籍 delete from Books where TypeID=@typeID --删除书籍后再删除类型 delete from BookTypes where id=@typeID
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算