必威体育Betway必威体育官网
当前位置:首页 > IT技术

SQL数据库触发器

时间:2019-08-06 02:44:25来源:IT技术作者:seo实验室小编阅读:66次「手机版」
 

sql触发器

触发器的概念

触发器是一种特殊的存储过程,它被分配给某个特定的表。当对这个表进行插入、更新或删除操作时,自动调用触发器执行触发器里规定的操作.

触发器是确保数据完整性和一致性的基本有效的方法。

和表相关联,可以看作是表的一部分;

 不能直接引用,通过insert/update/delete自动激活;

 属于事务机制;

 同一类型的触发器在表上可以有多个

触发器的特点

不接受用户参数,也不返回用户参数; 

事件驱动,自动调用;存储在表上。

数据库中的相关表进行级联更新和删除

强制比Check约束更复杂的数据完整性。

可以引用其他表中的列

触发器的种类

插入型触发器

删除型触发器

更新型触发器

一个表上可以定义多种类型的触发器

触发器的工作原理

sql Server创建了两个专用表:inserted表和deleted表。这是两个逻辑表,由系统来维护,不允许用户直接对这两个表进行修改。它们存放于内存中,不存放在数据库中。这两个表的结构总是与被该触发器作用的表的结构相同。

触发器的工作方式

执行触发器时,系统创建了两个特殊的逻辑表:

inserted和deleted表,不允许用户直接对它们进行

 修改。它们存放在内存中,不存放在数据库中。

当向表中插入数据时,insert触发器触发执行,新的记录插入到触发器表和inserted表中。 

当触发一个delete触发器时,被删除的表记录存放到deleted表中。

修改一条记录等于插入一条新记录,同时删除旧记录,表中原始记录放在deleted中,修改过的记录插入到inserted表中。

创建触发器

语法:

 

create trigger 触发器名
        on 表名
        for delete /insert /update
        as 
        触发器要执行的操作

创建插入型触发器

--在users表中定义触发器,当插入纪录时弹出消息:你已经向users表里插入了一条纪录!

create trigger t_users
on users
for insert 
as 
print '已向users表里插入了一条记录'
Go

创建delete触发器

--在users表中定义触发器,当删除纪录时弹出消息:你已经向users表里删除了一条纪录!

create trigger t_users
on users
for insert 
as 
print '已向users表里插入了一条记录'
Go
创建update触发器

如果在xs表中更新数据,则在执行时显示提示信息

   

create trigger tr_update
          on users
          for update
          as
          print ‘你已经更新了此数据!’
          go

修改、删除触发器

修改语法:

alter trigger 触发器名
        on 表名
        for delete /insert /update
        as 
        触发器要执行的操作

删除语法:

drop trigger 触发器名

禁用、启用触发器

禁用语法:

Alter table   表名    
disable trigger 触发器名

启用语法:

Alter table 表名     

enable trigger 触发器名

使用触发器时应考虑的因素

首先检查约束。如果在触发器表上存在约束,则约束在   触发器执行前检查。如果违反约束,触发器就不执行。 

对任何动作都可以有多个触发器。允许在一个表上嵌套几个触发器。一个表可以定义多个触发器。每个触发器可以为一个或几个动作定义。 

相关阅读

MySQL空间数据库

提到空间数据库,首先想到的一定是Esri公司的ArcSDE(SDE即Spatial Database Engine,空间数据库引擎),ArcSDE主要支持的数据库包括Oracle

Sql学习笔记-declare用法

栗子一: IF 1=1BEGINDECLARE @test VARCHARSET @test='1'   PRINT 'in if:'+@testEND 运行看结果输出in if:1这是可以预

windows 怎样进入注册表删除MySql注册表内容

第一步:打开运行第二步输入:regedit命令第三部在注册表中删除MySql对应的数据HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Se

产品经理学SQL(一)一个小时上手SQL

在没有实习练手机会的情况下,如何在短时间快速上手SQL对于在校学生或者非技术人员都是相当重要的。本文将介绍SQL是什么、如何快速

sql语句大全

简单基本的sql语句 (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * f

分享到:

栏目导航

推荐阅读

热门阅读