触发器触发器是干什么用的,有什么作用。

触发器  时间:2021-08-09  阅读:()

触发器的作用是什么?

触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT?或?DELETE。

触发器可以查询其它表,而且可以包含复杂的?SQL?语句。

它们主要用于强制复杂的业务规则或要求。

例如,可以控制是否允许基于顾客的当前帐户状态插入定单。

  触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。

然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。

如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。

  触发器的优点如下:   1、触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活;   2、触发器可以通过数据库中的相关表进行层叠更改。

例如,可以在?titles?表的?title_id?列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。

该触发器用?title_id?列作为唯一键,在?titleauthor、sales?及?roysched?表中对各匹配行进行定位;   3、触发器可以强制限制,这些限制比用?CHECK?约束所定义的更复杂。

与?CHECK?约束不同的是,触发器可以引用其它表中的列。

例如,触发器可以回滚试图对价格低于?10?美元的书(存储在?titles?表中)应用折扣(存储在?discounts?表中)的更新。

  触发器的分类:   1、DML( 数据操纵语言 Data Manipulation Language)触发器:是指触发器在数据库中发生DML事件时将启用。

DML事件即指在表或视图中修改数据的insert、update、delete语句;   2、DDL(数据定义语言 Data Definition Language)触发器:是指当服务器或数据库中发生(DDL事件时将启用。

DDL事件即指在表或索引中的create、alter、drop语句也;   3、登陆触发器:是指当用户登录SQL SERVER实例建立会话时触发。

  触发器的SQL Server实例:要求就是在AddTable这个表上创建一个Update触发器,语句为:

什么是触发器,使用触发器的好处是什么

触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。

触发器经常用于加强数据的完整性约束和业务规则等。

触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。

触发器可以查询其他表,而且可以包含复杂的 SQL 语句。

它们主要用于强制服从复杂的业务规则或要求。

例如:您可以根据客户当前的帐户状态,控制是否允许插入新订单。

触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。

然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。

如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。

创建触发器的SQL语法 DELIMITER | CREATE TRIGGER `<databaseName>`.`<triggerName>` < [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] > ON <tableName> FOR EACH ROW BEGIN --do something END | 触发器的优点 触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。

触发器可以强制比用 CHECK 约束定义的约束更为复杂的约束。

与 CHECK 约束不同,触发器可以引用其它表中的列。

例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。

触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。

一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。

比较触发器与约束 约束和触发器在特殊情况下各有优势。

触发器的主要好处在于它们可以包含使用 Transact-SQL 代码的复杂处理逻辑。

因此,触发器可以支持约束的所有功能;但它在所给出的功能上并不总是最好的方法。

实体完整性总应在最低级别上通过索引进行强制,这些索引或是 PRIMARY KEY 和 UNIQUE 约束的一部分,或是在约束之外独立创建的。

假设功能可以满足应用程序的功能需求,域完整性应通过 CHECK 约束进行强制,而引用完整性 (RI) 则应通过 FOREIGN KEY 约束进行强制。

在约束所支持的功能无法满足应用程序的功能要求时,触发器就极为有用。

例如:除非 REFERENCES 子句定义了级联引用操作,否则 FOREIGN KEY 约束只能以与另一列中的值完全匹配的值来验证列值。

CHECK 约束只能根据逻辑表达式或同一表中的另一列来验证列值。

如果应用程序要求根据另一个表中的列验证列值,则必须使用触发器。

约束只能通过标准的系统错误信息传递错误信息。

如果应用程序要求使用(或能从中获益)自定义信息和较为复杂的错误处理,则必须使用触发器。

触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。

触发器可以禁止或回滚违反引用完整性的更改,从而取消所尝试的数据修改。

当更改外键且新值与主键不匹配时,此类触发器就可能发生作用。

例如,可以在 titleauthor.title_id 上创建一个插入触发器,使它在新值与 titles.title_id 中的某个值不匹配时回滚一个插入。

不过,通常使用 FOREIGN KEY 来达到这个目的。

如果触发器表上存在约束,则在 INSTEAD OF 触发器执行后但在 AFTER 触发器执行前检查这些约束。

如果约束破坏,则回滚 INSTEAD OF 触发器操作并且不执行 AFTER 触发器。

触发器到底可不可以在视图上创建 在 SQL Server?6?4 联机丛书中,是没有说触发器不能在视图上创建的, 并且在语法解释中表明: 在CREATE TRIGGER 的 ON 之后可以是视图。

然而,事实似乎并不是如此,很多专家也说触发器不能在视图上创建。

我也专门作了测试,的确如此,不管是普通视图还是索引视图,都无法在上面创建触发器,真的是这样吗?请点击详细,但是无可厚非的是:当在临时表或系统表上创建触发器时会遭到拒绝。

深刻理解 FOR CREATE TRIGGER 语句的 FOR 关键字之后可以跟 INSERT、UPDATE、DELETE 中的一个或多个,也就是说在其它情况下是不会触发触发器的, 包括 SELECT、TRUNCATE、WRITETEXT、UPDATETEXT。

相关内容 一个有趣的应用我们看到许多注册系统在注册后都不能更改用户名,但这多半是由应用程序决定的, 如果直接打开数据库表进行更改,同样可以更改其用户名, 在触发器中利用回滚就可以巧妙地实现无法更改用户名……详细内容 触发器内部语句出错时…… 这种情况下,前面对数据更改操作将会无效。

举个例子,在表中插入数据时触发触发器,而触发器内部此时发生了运行时错误,那么将返回一个错误值,并且拒绝刚才的数据插入。

不能在触发器中使用的语句 触发器中可以使用大多数 T-SQL 语句,但如下一些语句是不能在触发器中使用的。

CREATE 语句,如:CREATE DATABASE、CREATE TABLE、CREATE INDEX 等。

ALTER 语句,如:ALTER DATABASE、ALTER TABLE、ALTER INDEX 等。

DROP 语句,如:DROP DATABASE、DROP TABLE、DROP INDEX 等。

DISK 语句,如:DISK INIT、DISK RESIZE。

LOAD 语句,如:LOAD DATABASE、LOAD LOG。

RESTORE 语句,如:RESTORE DATABASE、RESTORE LOG。

RECONFIGURE TRUNCATE TABLE 语句在sybase的触发器中不可使用! 慎用触发器 触发器功能强大,轻松可靠地实现许多复杂的功能,为什么又要慎用呢。

触发器本身没有过错,但由于我们的滥用会造成数据库及应用程序的维护困难。

在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据操作…… 同时规则、约束、缺省值也是保证数据完整性的重要保障。

如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程序. 编辑本段|回到顶部 数字电路领域名词 学名“双稳态多谐振荡器(Bistable Multivibrator)”。

触发器(Flip Flop)是一种可以存储电路状态的电子元件。

最简单的是由两个或非门,两个输入端和两个输出端组成的RS触发器(见图)。

复杂一些的有带时钟(CLK)段和D(Data)端,在CLK端为高电平时跟随D端状态,而在CLK端变为低电平的瞬间锁存信号的D触发器。

更常用的是两个简单D触发器级联而成的在时钟下跳沿所存信号的边缘D触发器,广泛应用于计数器、运算器、存储器等电子部件。

触发器的类型: 按逻辑功能不同分为:RS触发器、D触发器、JK触发器、T触发器。

按触发方式不同分为:电平触发器、边沿触发器和主从触发器。

按电路结构不同分为:基本RS触发器和钟控触发器。

按存储数据原理不同分为:静态触发器和动态触发器。

按构成触发器的基本器件不同分为:双极型触发器和MOS型触发器。

照明配件 用于高强度气体放电灯(H.I.D)的启动,型号繁多.由于高强度气体放电灯启动时需要一个高电压来使气体电离进入等离子态,因而需要一个高压发生器做为启动器。

这就是触发器早期的机械型触发器已经淘汰。

现在绝大多数触发器都是使用可控硅或高压触发二极管的电子触发器,常用的型号有:OSRAM 的 CD-7 飞利浦的 SI51 SN58 爱伦的ALK400等

触发器是干什么用的,有什么作用。

一、触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。

在数字系统和计算机中有着广泛的应用。

触发器具有两个稳定状态,即“0”和“1”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。

二、触发器的作用 1、可在写入数据表前,强制检验或转换数据。

2、触发器发生错误时,异动的结果会被撤销。

3、部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。

4、可依照特定的情况,替换异动的指令 (INSTEAD OF)。

扩展资料: 触发器的优点 触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。

触发器可以强制用比CHECK约束定义的约束更为复杂的约束。

与 CHECK 约束不同,触发器可以引用其它表中的列。

例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。

触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。

一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。

参考资料:搜狗百科-触发器

90IDC-香港云主机,美国服务器,日本KVM高性能云主机,创建高性能CLOUD只需60秒即可开通使用!

官方网站:点击访问90IDC官方网站优惠码:云八五折优惠劵:90IDCHK85,仅适用于香港CLOUD主机含特惠型。活动方案:年付特惠服务器:CPU均为Intel Xeon两颗,纯CN2永不混线,让您的网站更快一步。香港大浦CN2測速網址: http://194.105.63.191美国三网CN2測速網址: http://154.7.13.95香港购买地址:https://www.90idc.ne...

桔子数据58元/月 ,Cera美西云服务器 2核4G 50G数据盘 500M带宽 1000G流量

桔子数据(徐州铭联信息科技有限公司)成立于2020年,是国内领先的互联网业务平台服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的国内BGP、双线高防、香港等优质的IDC资源。 公司一直秉承”以人为本、客户为尊、永...

RAKsmart推出7.59美元/月,云服务器产品Cloud Server,KVM架构1核1G内存40G硬盘1M带宽基础配置

近期RAKsmart上线云服务器Cloud Server产品,KVM架构1核1G内存40G硬盘1M带宽基础配置7.59美元/月!RAKsmart云服务器Cloud Server位于美国硅谷机房,下单可选DIY各项配置,VPC网络/经典网络,大陆优化/精品网线路,1-1000Mbps带宽,支持Linux或者Windows操作系统,提供Snap和Backup。RAKsmart机房是一家成立于2012年...

触发器为你推荐
蓝屏代码电脑启动出现蓝屏代码lazyloadphpwind中门户模式怎么使用lazyload图片加载?apple以旧换新苹果以旧换新怎么换?价格是怎样的密码设置怎么设置开机密码?横幅广告如何在应用中添加Admob横幅广告微店是什么开微店和开淘宝店有什么区别吗小蓝条AU多轨怎么调出每个音轨下面一个小蓝条调整音量好用的手机杀毒软件好用的手机杀毒软件软件群发免费的加群群发软件?spinmaster技术滑板截图方法
上海服务器租用 哈尔滨服务器租用 代理域名备案 google镜像 asp.net主机 dreamhost 香港托管 哈喽图床 网站挂马检测工具 个人免费空间 个人空间申请 北京双线 web服务器安全 789 德隆中文网 华为云建站 php服务器 lamp什么意思 ledlamp 中国联通宽带测速 更多