首页 > 其他分享 >触发器

触发器

时间:2023-04-21 10:22:26浏览次数:33  
标签:语句 触发器 存储 SQL 执行 数据

Create

Alter

DROP trigger T_addBoxInfo_In
on BoxInfo_In
after insert
as
begin
update BoxInfo_In set Repeat_Count=Repeat_Count+1 where Id <> (select Id from inserted)
end

=====================================================================================================================================================

1 .触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。 可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 什么是触发器?SQL Server 2000有什么不同类型的触发器? 让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的。 触发器是一种专用类型的存储过程,它被捆绑到SQL Server 2000的表格或者视图上。在SQL Server 2000里,有INSTEAD-OF和AFTER两种触发器。 INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA的INSTEAD-OF-UPDATE触发器, 同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。 AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。 触发器原理: 触发器与存储过程非常相似,触发器也是SQL语句集,两者唯一的区别是触发器不能用EXECUTE语句调用, 而是在用户执行Transact-SQL语句时自动触发(激活)执行。触发器是在一个修改了指定表中的数据时执行的存储过程。 通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器, 所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的, 而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句, 从而确保对数据的处理必须符合这些SQL语句所定义的规则。 触发器的作用: 触发器的主要作用是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。它能够对数据库中的相关表进行级联修改, 强制比CHECK约束更复杂的数据完整性,并自定义操作消息,维护非规范化数据以及比较数据修改前后的状态。与CHECK约束不同, 触发器可以引用其它表中的列。在下列情况下使用触发器实现复杂的引用完整性;强制数据间的完整性。 创建多行触发器,当插入,更新、删除多行数据时,必须编写一个处理多行数据的触发器。执行级联更新或级联删除这样的动作。 级联修改数据库中所有相关表。撤销或者回滚违反引用完整性的操作,防止非法修改数据。 触发器与存储过程的区别: 触发器与存储过程的主要区别在于触发器的运行方式。存储过程必须有用户、应用程序或者触发器来显示的调用并执行, 而触发器是当特定时间出现的时候,自动执行或者激活的,与连接用数据库中的用户、或者应用程序无关。当一行被插入、 更新或者删除时触发器才执行,同时还取决于触发器是怎样创建的,当UPDATE发生时使用一个更新触发器,当INSERT发生时使用一个插入触发器, 当DELETE发生时使用一个删除触发器。

(1)触发器与存储过程可以说是非常相似,可以说是一种变种的存储过程,触发器和存储过程一样都是SQL语句集,通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。

(2)触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。

 

标签:语句,触发器,存储,SQL,执行,数据
From: https://www.cnblogs.com/aikeming/p/17148585.html

相关文章

  • SqlServer触发器获取变更的数据
    1、Inserted和DeletedInserted表用于存储INSERT和UPDATE语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到inserted表和触发器表中。Inserted表中的行是触发器表中新行的副本。插入操作Inserted表有数据,Deleted表无数据删除操作Inserted表无数据,De......
  • 32-触发器02
    触发器1.状态图2.初始状态触发器都有异步清0和置1端3.波形图3.1例13.2例23.3例33.4例44.JK触发器一次变化的问题一次变化,在cp等于1期间,JK端发生变化,最多变化一次......
  • Oracle触发器
    触发器Oracle数据库对象,类似于存储过程和函数;存储过程和函数需要用户显示调用才可执行;触发器是由一个事件触发运行,当某个事件发生时会自动隐式的运行,不能被显示调用;触发器的本质是存储过程1.触发器执行的条件,即触发事件;2.执行触发器的时间,即发生事件之前before还是发生事......
  • 视图,触发器,存储过程
    目录一、视图1、什么是视图2、为什么要用视图3、如何用视图二、触发器1、为何要用触发器2、创建触发器语法3、实际应用三、存储过程1、介绍2、创建简单存储过程(无参)3、创建存储过程(有参)4、如何用存储过程5、查看存储与删除存储6、存储过程与事务使用举例(了解一、视图1、什么是......
  • 视图,触发器,事务,存储过程,内置函数,流程控制,索引
    目录SQL注入问题视图1、什么是视图2、为什么要用视图3、如何用视图触发器为何要用触发器创建触发器语法事务(掌握)什么是事务事务的作用事务的4个属性(ACID)如何用存储过程基本使用三种开发模型第一种第二种第三种创建存储过程如何用存储过程函数流程控制索引b+树聚集索引(primaryk......
  • 《Mysql基础》【Mysql触发器 新建触发器、修改触发器、删除触发器、举例】 编程入门
     --mysql数据库程序设计笔记:--=========第八章:触发器========================触发器:触发执行特定事件。(关联表对象,当特定事件出现时,触发激活)目的:保护表数据,(保证表数据完整性和一致性。)1、新建触发器:格式:createtrigger数据库名.触发器名称触发时刻inserton表名f......
  • zabbix配置触发器。。。。即设置监控项报警的分界值!!
              {192.168.8.101:system.users.num.last()}>6            报警声音设置    测试触发器报警:   问题来了,触发器提醒运维人员,需要及时处理一般问题!! ......
  • 触发器模板
    --删除ifexists(select*fromdbo.sysobjectswhereid=OBJECT_ID(N'[dbo].[trig_delete_Ap_CloseBill_extradefine]')andOBJECTPROPERTY(id,N'IsTrigger')=1)dropTRIGGERtrig_delete_Ap_CloseBill_extradefinegoCREATETRIGGERtrig_dele......
  • python apscheduler 定时任务的基本使用-4-cron触发器的使用
    pythonapscheduler定时任务的基本使用-4-cron触发器的使用1、前言cron触发器,当前时间与cron表达式匹配时,执行任务,等同于UNIX的cron。官网cron2、参数说明参数如下,除......
  • 触发器插入多行数据,字符串逗号分隔
    CREATEDEFINER=yfy_cloud@%TRIGGERubulAFTERINSERTON无标题`FOREACHROWBEGINDELETEFROMbase_userrelationWHEREF_UserId=new.F_Id;INSERTINTObase_userr......