数据库触发器
㈠ 在数据库里怎么使用触发器
触发器是一类特殊的存储过程,开发人员也可以定义、编写符合业务需求的触发器来维护数据的完整性。触发器的控制流程及控制语句与存储过程相同,但触发器与存储过程还是有相当大的差别,触发器的定义格式及开启方式与存储过程不同,作为数据管理员或编程人员,熟练掌握触发器的用法对维护、操作数据库非常重要。基本语法1.创建触发器语法格式创建语法:CREATETRIGGER+触发器名称+触发时间点+触发事件+ON+表名+FOREACHROWBEGIN…END其中,触发时间点:BEFORE或AFTER,指明是在触发事件之前还是之后执行。
触发事件:INSERT、UPDATE、DELETE事件。例如,以下语句创建一个名字叫upd_check的触发器,其在对account表作更新(UPDATE)操作之前(BEFORE)自动触发。
CREATETRIGGERupd_…END2.删除触发器语法格式DROPTRIGGER+触发器名称3.触发器案例用tab.sql脚本创建表环境,然后用下面语句创建触发器。当往tab1表添加记录后将触发此触发器,将此新记录同时插入tab2表中。
DELIMITER//DROPTRIGGERIFEXISTSt_afterinsert_on_tab1;CREATETRIGGERt_afterinsert_on_(tab2_id)values(new.tab1_id);END;//DELIMITER;当用下面语句往tab1表插入记录时,tab2表中同时也添加了同样的记录,如图tab1数据表
tab1数据表
tab2数据表
INSERTINTOtab1(tab1_id)values(')
tab.sql
㈡ 数据库表中的触发器有几种
CREATE TRIGGER [owner.]trigger_name
ON [owner.]table_name
FOR {INSERT, UPDATE, DELETE}
[WITH ENCRYPTION]
AS sql_statements
这是建立触发器基本语句,只有三种,insert,update,delete
㈢ 数据库触发器有什么作用
触发器的作用:
自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理。
同步实时地复制表中的数据。
实现复杂的非标准的数据库相关完整性规则。
可在写入数据表前,强制检验或转换数据。
触发器发生错误时,异动的结果会被撤销。
部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。
可依照特定的情况,替换异动的指令 (INSTEAD OF)。
(3)数据库触发器扩展阅读:
分类
SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。
DML触发器
当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果我们对该表写了对应的DML触发器,那么该触发器自动执行。
DML触发器的主要作用在于强制执行业 务规则,以及扩展Sql Server约束,默认值等。因为我们知道约束只能约束同一个表中的数据,而触发器中则可以执行任意Sql命令。
DDL触发器
它是Sql Server2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。比如在修改表,修改列,新增表,新增列等。
它在数据库结构发生变化时执行,我们主要用它来记录数据库的修改过程,以及限制程序员对数据库的修改,比如不允许删除某些指定表等。
登录触发器
登录触发器将为响应 LOGIN 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。
因此,来自触发器内部且通常将到达用户的所有消息(例如错误消息和来自 PRINT 语句的消息)会传送到 SQL Server 错误日志。如果身份验证失败,将不激发登录触发器。
参考资料来源:网络-触发器
㈣ 数据库 触发器有什么用
触发器
触发器的定义就是说某个条件成立的时候,你触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。
然后,触发器的触发条件其实在你定义的时候就已经设定好的了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。
具体举例:
1. 在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。
2. 在一个表中定义了行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。
触发器简介:
触发器是一种特殊类型的过程。与普通过程不同的是,过程需要用户显式地调用才执行,而触发器则是当某些事件发生时,由Oracle自动执行。
触发器主要由如下几个部分组成:
触发事件:
触发条件:
触发对象:
触发操作:
编写触发器时,需要注意以下几点:
触发器不接受参数。
一个表上最多可以有12个触发器,但同一时间、同一事件、同一类型的触发器只能有一个。还需要注意,各个触发器之间不能有矛盾。
在一个表上的触发器越多,对在该表上的DML操作性能影响就越大。
触发器最大为32KB。如果确实需要,可以先建立过程,然后在触发器中用CALL语句调用。
在DML触发器中只能使用DML语句(select,insert,update,delete)。
在系统触发器中只能包含DDL语句(create,alter,drop)。
触发器中不能包含事务控制语句(commit,rollback,savepoint)。因为触发器是触发语句的一部门,触发语句被提交或回退时,触发器也就被提交或回退了。
在触发器主体中调用的任何过程、函数都不能使用事务控制语句。
在触发器主体中不能声明任何long和blob变量。新值new、旧值old也不能指向表中的任何long和blog列
不同类型的触发器(如DML触发器、INSTEAD OF触发器、系统触发器)的语法格式和作用都有较大区别。
</B>
㈤ 数据库触发器
系统在处理update动作时,它先删除该条记录,然后再添加一条符合条件的记录
在使用update触发器时,你可以根据自己的需求,如果你需要新添加的记录,
你可以选择inserted 表(当激活触发器时,新添加的记录被保存在inserted表中);
如果你需要修改前的那条记录,你可以使用deleted表(当触发器被激活后,修改前的
那条记录被保存在deleted表)中。当触发器执行完成后,这两个表即被删除。
㈥ 数据库中触发器的作用是什么
触发器是数据库提供给程序员和数据分析员来保证数据完整性的一种机制,它是一种与数据表事件相关的特殊的存储过程。触发器的执行不是由程序调用,也不需要手工开启,而是由数据表上的事件来触发,当用户对一个数据表进行增、删、改操作时就会激活它执行。
触发器可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于强制服从复杂的业务规则或要求。触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。
触发器功能强大,可以轻松可靠地实现许多复杂的功能,但也不能过于依赖触发器,滥用触发器会造成关系数据库及应用程序维护困难,性能、效率低下等问题的产生,在实际问题中,要根据实际需要选择合适的解决方案。触发器是一种特殊的存储过程,在插入、删除、修改特定表中的数据时触发执行,拥有比数据库本身更强大的数据控制能力,其作用有以下四大方面。
1.数据安全数据安全主要是指对信息系统中的业务数据提供一种数据变更的审核机制,当其通过安全策略的审核后,允许用户变更相关数据,否则直接拒绝数据变更的请求。
安全原理:基于数据库的值使用户具有操作数据库的某种权利。
((1)可以基于时间限制用户的操作。例如,不允许下班后和节假日修改数据库数据。
(2)可以基于数据库中的数据限制用户的操作。例如,不允许股票价格的升幅一次超过10%。
2.数据审计数据审计主要是指对数据服务器上的记录进行变更时的一种用户权限的即时审查与用户行为的全方位记录,以便事后对数据变更过程的追溯,保证数据变更的合法性。
审计原理:跟踪用户对数据库的操作。
((1)审计用户操作数据库的语句。
(2)把用户对数据库的更新写入审计表。
3.数据约束数据约束是指对用户的操作行为将导致业务数据与实际情况相悖的行为进行检查约束,而不让其发生,从而保证数据的完整性与一致性。
约束原理:对用户操作与实际逻辑的约束检查。
((1)实现数据完整性检查和约束。例如,回退任何企图买进超过自己资金的货物。
(2)提供可变的缺省值。
4.数据连环更新数据连环更新是指当对数据进行更新操作时,将所有与此数据相关联的数据作联合的更新操作,以保证数据的完整性与一致性。
连环更新原理:对关联数据作联合更新操作。
((1)修改或删除时级联修改或删除其他表中与之匹配的行。
(2)修改或删除时把其他表中与之匹配的行设成NULL值。
(3)修改或删除时把其他表中与之匹配的行级联设成缺省值。
㈦ 数据库中的“触发器”是什么意思
在SQL中,名词触发器指“在数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。”(Wikipedia)说得简单一些,它是在一个特殊的数据库事件,如INSERT或DELETE发生时,自动激活的一段代码。触发器可方便地用于日志记录、对单个表格到其他链接式表格进行自动的“层叠式”更改、或保证对表格关系进行自动更新。当一个新整数值增加到数据库域中时,自动更新运行的总数的代码段是一个触发器。自动记录对一个特殊数据库表格所作更改的SQL命令块也是一个触发器实例
㈧ 数据库触发器是什么
触发器是一类特殊的存储过程,被定义为在对表或视图发出 UPDATE、INSERT 或 DELETE 语句时自动执行。触发器是功能强大的工具,使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以扩展 SQL Server 约束、默认值和规则的完整性检查逻辑,但只要约束和默认值提供了全部所需的功能,就应使用约束和默认值。
表可以有多个触发器。CREATE TRIGGER 语句可以与 FOR UPDATE、FOR INSERT 或 FOR DELETE 子句一起使用,指定触发器专门用于特定类型的数据修改操作。当指定 FOR UPDATE 时,可以使用 IF UPDATE (column_name) 子句,指定触发器专门用于具体某列的更新。
代码是写在数据库里面的,触发器包含 Transact-SQL 语句,这与存储过程十分相似。
如果你有安装SQL SEVER,那么你可以在SQL SEVER的帮助文档里找到很多详细的解析,打开查询分析器按F1也可以打开SQL SEVER的帮助文档。
示例
下例首先创建一个触发器,当用户在表 roysched 中添加或更改数据时,该触发器向客户端打印一条用户定义消息。然后,使用 ALTER TRIGGER 语句使该触发器仅对 INSERT 活动有效。该触发器有助于提醒向表中插入行或更新行的用户及时通知书的作者和出版商。
USE pubs
GO
CREATE TRIGGER royalty_reminder
ON roysched
WITH ENCRYPTION
FOR INSERT, UPDATE
AS RAISERROR (50009, 16, 10)
-- Now, alter the trigger.
USE pubs
GO
ALTER TRIGGER royalty_reminder
ON roysched
FOR INSERT
AS RAISERROR (50009, 16, 10)
㈨ 数据库中的触发器是什么,请帮忙解释一下
触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求。例如,可以控制是否允许基于顾客的当前帐户状态插入定单。
触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。有关详细信息,请参见表关系。
使用触发器的优点
触发器的优点如下:
触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。
触发器可以通过数据库中的相关表进行层叠更改。例如,可以在 titles 表的 title_id 列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。该触发器用 title_id 列作为唯一键,在 titleauthor、sales 及 roysched 表中对各匹配行进行定位。
触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。例如,触发器可以回滚试图对价格低于 10 美元的书(存储在 titles 表中)应用折扣
㈩ 数据库触发器的优缺点以及用法
触发器本质上讲就是事件监控器,可以定义在数据库系统进行某一个操作的前后。
当数据库系统在进行特定的操作时,发现有触发器定义,就去执行触发器定义的功能,从而满足某些特定的需要。
例如,在更新某些数据后,再去更新特定的数据。
这就可以定义一个触发器完成这样的需要。
触发器的优点:
以事件方式来处理. 当数据发生变化的时候, 自动作处理。
缺点:
当数据库之间 导出导入的时候, 可能会引起不必要的触发逻辑。