sql触发器的主要作用是什么(数据库触发器有什么作用)

2024-07-21 00:27:03 2

sql触发器的主要作用是什么(数据库触发器有什么作用)

本文目录

数据库触发器有什么作用

触发器的作用:

自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理。

同步实时地复制表中的数据。

实现复杂的非标准的数据库相关完整性规则。

可在写入数据表前,强制检验或转换数据。

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

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

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

扩展资料:

分类

SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。

DML触发器

当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果我们对该表写了对应的DML触发器,那么该触发器自动执行。

DML触发器的主要作用在于强制执行业 务规则,以及扩展Sql Server约束,默认值等。因为我们知道约束只能约束同一个表中的数据,而触发器中则可以执行任意Sql命令。

DDL触发器

它是Sql Server2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。比如在修改表,修改列,新增表,新增列等。

它在数据库结构发生变化时执行,我们主要用它来记录数据库的修改过程,以及限制程序员对数据库的修改,比如不允许删除某些指定表等。

登录触发器

登录触发器将为响应 LOGIN 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。

因此,来自触发器内部且通常将到达用户的所有消息(例如错误消息和来自 PRINT 语句的消息)会传送到 SQL Server 错误日志。如果身份验证失败,将不激发登录触发器。

参考资料来源:百度百科-触发器

sql触发器问题

在SQL中,触发器是一种特殊类型的存储过程,它不同于SQL的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLServer就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合由这些SQL语句所定义的规则。触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:(1)强化约束(Enforcerestriction)触发器能够实现比CHECK语句更为复杂的约束。(2)跟踪变化(Auditingchanges)触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。(3)级联运行(Cascadedoperation)。触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。(4)存储过程的调用(Storedprocedureinvocation)。为了响应数据库更新触,发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS(数据库管理系统)本身之外进行操作。由此可见,触发器可以解决高级形式的业务规则或复杂行为限制以及实现定制记录等一些方面的问题。例如,触发器能够找出某一表在数据修改前后状态发生的差异,并根据这种差异执行一定的处理。此外一个表的同一类型(INSERT、UPDATE、DELETE)的多个触发器能够对同一种数据操作采取多种不同的处理。总体而言,触发器性能通常比较低。当运行触发器时,系统处理的大部分时间花费在参照其它表的这一处理上,因为这些表既不在内存中也不在数据库设备上,而删除表和插入表总是位于内存中。可见触发器所参照的其它表的位置决定了操作要花费的时间长短。触发器的种类SQLServer2000支持两种类型的触发器:AFTER触发器和INSTEADOF触发器。其中AFTER触发器即为SQLServer2000版本以前所介绍的触发器。该类型触发器要求只有执行某一操作(INSERTUPDATEDELETE)之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。对于AFTER触发器,可以定义哪一个触发器被最先触发,哪一个被最后触发,通常使用系统过程sp_settriggerorder来完成此任务。INSTEADOF触发器表示并不执行其所定义的操作(INSERT、UPDATE、DELETE),而仅是执行触发器本身。既可在表上定义INSTEADOF触发器,也可以在视图上定义INSTEADOF触发器,但对同一操作只能定义一个INSTEADOF触发器。

sql server 触发器有什么用

触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 什么是触发器 触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create、alter、drop语句。***隐藏网址***

谁知道在SQL中什么是触发器,有什么作用

触发器是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。CREATE PROCEDURE 或 CREATE TRIGGER 语句不能跨越批处理。即存储过程或触发器始终只能在一个批处理中创建并编译到一个执行计划中。用触发器还可以强制执行业务规则Microsoft® SQL Server64 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 约束只能根据逻辑表达式或同一表中的另一列来验证列值。

SQL触发器有什么用处啊

  触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应 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 触发器。

sql触发器的主要作用是什么(数据库触发器有什么作用)

本文编辑:admin

更多文章:


quartz插件怀旧服(WOW怀旧服quartz插件 施法时间是倒计时的)

quartz插件怀旧服(WOW怀旧服quartz插件 施法时间是倒计时的)

各位老铁们,大家好,今天由我来为大家分享quartz插件怀旧服,以及WOW怀旧服quartz插件 施法时间是倒计时的的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们

2024年8月5日 23:30

vba宏是什么意思(什么是宏什么是VBA)

vba宏是什么意思(什么是宏什么是VBA)

本文目录什么是宏什么是VBAvba是什么 vba是什么意思什么是宏什么是VBA宏的意思是,一系列可以重复的动作。在Excel、Word等应用软件里,宏是用VBA(Visual Basic for Application)语言编写的,换句话讲

2024年6月29日 01:16

哪里有中医大学视频教程(想自学中医,有什么好的中医指导视频或者直播讲解)

哪里有中医大学视频教程(想自学中医,有什么好的中医指导视频或者直播讲解)

大家好,哪里有中医大学视频教程相信很多的网友都不是很明白,包括想自学中医,有什么好的中医指导视频或者直播讲解也是一样,不过没有关系,接下来就来为大家分享关于哪里有中医大学视频教程和想自学中医,有什么好的中医指导视频或者直播讲解的一些知识点,

2024年7月13日 17:50

js字符串分割成数组(JS怎样把字符串变成数组)

js字符串分割成数组(JS怎样把字符串变成数组)

本文目录JS怎样把字符串变成数组JS怎么实现把字符串拆分成数组,并调出指定js以逗号分隔的字符串怎么转化为数组JS怎样把字符串变成数组var place = “)|(\’)/g,““);得到结果是:wuhan,beijing,shangha

2024年7月6日 05:30

extract翻译(extract和abstract的区别~ 两者都有“提取”“摘抄”的意思,我想知道当用作“提取”时两者的区别)

extract翻译(extract和abstract的区别~ 两者都有“提取”“摘抄”的意思,我想知道当用作“提取”时两者的区别)

本文目录extract和abstract的区别~ 两者都有“提取”“摘抄”的意思,我想知道当用作“提取”时两者的区别翻译as extract equiv. to freshderive和extract都有提取的意思,怎么区别extract是

2024年7月2日 14:26

程序员怎么免费看视频(百战程序员的Java视频在哪里能看,是否免费)

程序员怎么免费看视频(百战程序员的Java视频在哪里能看,是否免费)

大家好,程序员怎么免费看视频相信很多的网友都不是很明白,包括百战程序员的Java视频在哪里能看,是否免费也是一样,不过没有关系,接下来就来为大家分享关于程序员怎么免费看视频和百战程序员的Java视频在哪里能看,是否免费的一些知识点,大家可以

2024年10月22日 05:55

主流的几种orm框架优缺点(从程序员到架构师需要多久)

主流的几种orm框架优缺点(从程序员到架构师需要多久)

本文目录从程序员到架构师需要多久PHP四大主流框架的优缺点有哪些从程序员到架构师需要多久我是java程序员,从java程序员成为架构师我用了7年。关于程序员用多长时间才能进阶成为架构师,我认为这因人而异,取决于程序员自身的综合情况,包括:努

2023年9月22日 03:20

lesson的用法(关于 lesson 的用法)

lesson的用法(关于 lesson 的用法)

本文目录关于 lesson 的用法lesson和class的用法有什么不同一节课的英文单词是什么subject和lesson的用法class和lesson的用法lesson和subject的用法和区别是什么关于 lesson 的用法这个le

2024年7月22日 06:13

transmit和transfer(transmit transfer transit 之间有什么区别)

transmit和transfer(transmit transfer transit 之间有什么区别)

本文目录transmit transfer transit 之间有什么区别英语transmit和transfer的区别transmit transfer transit 之间有什么区别这三个词的都是有trans演变过来的,但是这三个词用语不

2024年7月15日 13:26

java需要学多久才能工作(java学多久可以就业)

java需要学多久才能工作(java学多久可以就业)

大家好,今天小编来为大家解答以下的问题,关于java需要学多久才能工作,java学多久可以就业这个很多人还不知道,现在让我们一起来看看吧!本文目录java学多久可以就业Java学多久才能找到工作java学多久可以就业如果要想找到一份Java

2024年9月10日 10:20

恐怖游轮电影(为何说《恐怖游轮》这部电影循环烧脑)

恐怖游轮电影(为何说《恐怖游轮》这部电影循环烧脑)

大家好,如果您还对恐怖游轮电影不太了解,没有关系,今天就由本站为大家分享恐怖游轮电影的知识,包括为何说《恐怖游轮》这部电影循环烧脑的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录为何说《恐怖游轮》这部电影循环烧脑《

2024年9月5日 06:20

objective造句(单词造句20个)

objective造句(单词造句20个)

其实objective造句的问题并不复杂,但是又很多的朋友都不太了解单词造句20个,因此呢,今天小编就来为大家分享objective造句的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录单词造句20个目标的词语解释

2024年7月15日 11:13

简历个人主页怎么写(个人主要简历怎么写)

简历个人主页怎么写(个人主要简历怎么写)

大家好,今天小编来为大家解答以下的问题,关于简历个人主页怎么写,个人主要简历怎么写这个很多人还不知道,现在让我们一起来看看吧!本文目录个人主要简历怎么写本人简历怎么写 简短个人简介怎么写个人主要简历怎么填写个人简历应该怎么写简历个人主页怎么

2024年10月23日 15:25

delete语句会把表删完吗(不带条件的SQL DELETE 命令将删除指定表的哪些记录)

delete语句会把表删完吗(不带条件的SQL DELETE 命令将删除指定表的哪些记录)

各位老铁们,大家好,今天由我来为大家分享delete语句会把表删完吗,以及不带条件的SQL DELETE 命令将删除指定表的哪些记录的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大

2024年10月13日 12:00

echarts中文乱码(echarts的toolbox中可以重新定义 feature的title吗)

echarts中文乱码(echarts的toolbox中可以重新定义 feature的title吗)

大家好,今天小编来为大家解答以下的问题,关于echarts中文乱码,echarts的toolbox中可以重新定义 feature的title吗这个很多人还不知道,现在让我们一起来看看吧!本文目录echarts的toolbox中可以重新定义

2024年7月14日 11:08

excel怎么求乘积(怎么在excel中计算两个数的乘积)

excel怎么求乘积(怎么在excel中计算两个数的乘积)

本文目录怎么在excel中计算两个数的乘积在excel中如何求积 excel表格求积的方法excel怎么求乘积怎么在excel中计算两个数的乘积材料/工具:Excel20101、首先打开excel,由于我是在这里做演示,所以随便输入了两组数

2024年7月10日 05:55

好玩的vbs脚本(路由器自动换ip vbs脚本怎么写)

好玩的vbs脚本(路由器自动换ip vbs脚本怎么写)

本文目录路由器自动换ip vbs脚本怎么写vbs 脚本 代码 改变 鼠标 坐标路由器自动换ip vbs脚本怎么写这种脚本的编写需要具体环境下来有针对性的编写,因为脚本里需要具体的标志号,比如上面截图中的 连接 断开连接 按钮的ID号,或者用

2024年7月12日 21:37

php虚拟主机管理系统(windows2012 装个php集成环境,再装虚拟主机管理系统,能用吗)

php虚拟主机管理系统(windows2012 装个php集成环境,再装虚拟主机管理系统,能用吗)

各位老铁们好,相信很多人对php虚拟主机管理系统都不是特别的了解,因此呢,今天就来为大家分享下关于php虚拟主机管理系统以及windows2012 装个php集成环境,再装虚拟主机管理系统,能用吗的问题知识,还望可以帮助大家,解决大家的一些

2024年7月14日 05:21

dev c++下载(Dev-C++的下载与安装)

dev c++下载(Dev-C++的下载与安装)

本文目录Dev-C++的下载与安装devc++电脑版怎么下载不了dev c++5.11在哪里下载Devc++可以用华为笔记本电脑D15下载吗华为平板可以下载devcipad怎么下载devc++devc下载有Mac版吗Dev-C++的下载与安

2024年7月15日 17:12

divine wrath翻译(帝国时代3神话时代)

divine wrath翻译(帝国时代3神话时代)

本文目录帝国时代3神话时代divine-wrath是什么意思后羿射日的英文版帝国时代3神话时代在游戏中按下回车后输入以下密码即可(注意要大写): GOATUNHEIM 获得“Goat”神力 WUV WOO 飞行的紫河马 I WANT TEH

2024年6月10日 19:44

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2342
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1736
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1168
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1164
标签列表

热门搜索