问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能告诉我sql 的触发器到底能干什么?我看教程的看晕了,谁能用通俗点...

发布网友 发布时间:2022-04-24 01:43

我来回答

3个回答

热心网友 时间:2022-04-11 19:10

[编辑本段]SQL触发器

触发器是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。
CREATE PROCEDURE 或 CREATE TRIGGER 语句不能跨越批处理。即存储过程或触发器始终只能在一个批处理中创建并编译到一个执行计划中。
用触发器还可以强制执行业务规则
Microsoft® SQL Server™ 2000 提供了两种主要机制来强制业务规则和数据完整性:约束和触发器。触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应 INSERT、UPDATE 或 DELETE 语句。触发器可以查询其它表,并可以包含复杂的 Transact-SQL 语句。将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到严重错误(例如,磁盘空间不足),则整个事务即自动回滚。
[编辑本段]优点
触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。
触发器可以强制比用 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 触发器。

热心网友 时间:2022-04-11 20:28

可以用来判断,输入内容是否合法
举例,在ERP软件中(企业资源规划软件), 在填写单据的时候,如果有地方,输入(比如编号)不合法,或者重复,或其他,你需要的*,加入触发器,系统会帮你判断
当然,这只是功能中的一个

热心网友 时间:2022-04-11 22:03

根据触发条件增删改数据库中的数据
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...Exception EoleSysError in module PlayGame.exe at 000AAA95,怎么... ...出现Exception EOleSysError in module ATT.exe at 000BCA21.拒绝... 求大神帮忙: Exception EOleSysError in module.1.多元函数概念(1... windows7ExceptionEOlesysErrorinmoduleexeat000649E0找不到指定模块... 南京新街口适合情侣吃饭的地方,南京钟山景区露台酒店价格 c语言中如何计算a+ b的和 题目:有用户输入两个整数a,b 求a和b之间的数的累加和,包括a和b 用C语... 有请高手解答,平手盘是什么意思,我认为打平多 平手盘什么意思平手盘指的是什么 食品添加剂安全使用指南目录 SQL触发器写法 请问sql触发器insert触发器如何使用? SQL触发器的语法 wind10打印机共享怎么设置 一台电脑如何配置内网和外网wind10 win10怎么在“此电脑”添加新的文件夹 wind10 我的电脑怎么显示出来 自己的wind10笔记本如何在办公室连上有线打印机? 有谁知道怎么把两台Wind10家庭版系统的电脑连接到一台打印机上? 霍山石斛怎么吃?多少钱一斤 霍山枫斗米斛怎么吃? 九斛之尊霍山石斛鲜条怎么吃? 支付宝芝麻信用分达到650分怎么用 怎么才能增加芝麻信用度? 芝麻分600到650要多久 我想学厨师,家常菜的那种,应该去哪学? 芝麻信用 差22分上650,怎么提升?以及为什么借呗开不了?个人信息都填好了啊 芝麻信用分650难达到吗 麻辣烫的做法,有几种 我现在的芝麻分是628,怎么能快速升到650分? 请问SQL触发器用在什么地方? ...求解... SQL 触发器 应用 sql server 触发器 中 for 怎么使用 请教如何使用SQL的触发器 数据库是MSSQLSERVER (1)使用SQL语句创建触发器 SQL Server数据库中的游标和触发器有哪些作用,什么情况下可以使用触发... sql里,instead of触发器是什么意思,如何使用? 如何在C#中使用带有 触发器 的SQL语句 sql中的触发器该不该使用? 录屏大师录完的视频怎么分享给QQ好友? 录屏大师怎么分享给qq好友 录屏大师录完的视频怎么才能分享给其他人啊? ARN9嵌入式系统设计与开发应用目录的介绍 录屏大师的视频怎么发给微信好友? arm9嵌入式开发板能实现哪些功能 什么录屏软件可以分享给qq好友 ARM9嵌入式开发平台是做什么用的? 嵌入式应用开发入门,ARM9,应用软件开发,opengl es 王者荣耀保存了视频,本地回放怎么分享给QQ好友啊 ARM9嵌入式系统设计基础教程的介绍