更新事务类似于在删除之后执行插入;首先旧行被复制到 deleted 表中,然后新行被复制到触发器表和 inserted 表中。
1.插入操作(Insert)
Inserted表有数据,Deleted表无数据
2.删除操作(Delete)
Inserted表无数据,Deleted表有数据
3.更新操作(Update)
Inserted表有数据(新数据),Deleted表有数据(旧数据)
一、insert触发器
create trigger tr_COMMISSIONINFO_INSERT on COMMISSION_INFO_
for insert
as
begin
declare @COMMISSIONID varchar(20),@DATE datetime
set @COMMISSIONID=(select ID_ from INSERTED)
set @DATE=getdate()
insert into COOPERATE_YEARS_(COMMISSION_ID_, CONTRACT_START_DATE_, RE_CONTRACT_START_DATE_) VALUES(@COMMISSIONID, @DATE, @DATE)
end
二、update触发器
create trigger tr_COMMISSIONINFO_UPDATE on COMMISSION_INFO_
for update
as
begin
declare @COMMISSIONID varchar(20), @OLD_COMM_CATEGORY int, @NEW_COMM_CATEGORY int, @DATE datetime
set @COMMISSIONID=(select ID_ from INSERTED)
set @OLD_COMM_CATEGORY=(select COMM_CAGEGORY_ from DELETED)
set @NEW_COMM_CATEGORY=(select COMM_CAGEGORY_ from INSERTED)
set @DATE=getdate()
if((@OLD_COMM_CATEGORY<103 or @OLD_COMM_CATEGORY>106) and (@NEW_COMM_CATEGORY>=103 and @NEW_COMM_CATEGORY<=106))
begin
if exists(select 1 from COOPERATE_YEARS_ where COMMISSION_ID_=@COMMISSIONID)
begin
update COOPERATE_YEARS_ set RE_CONTRACT_START_DATE_=@DATE where COMMISSION_ID_=@COMMISSIONID
end
else
begin
insert into COOPERATE_YEARS_(COMMISSION_ID_, CONTRACT_START_DATE_, RE_CONTRACT_START_DATE_)VALUES(@COMMISSIONID, @DATE, @DATE)
end
end
end
create trigger [TG_SIMCARDRESOURCE_UPDATE] on [dcms_hy15].[SIM_CARD_RESOURCE_]
for update
as
begin
declare @OLD_LOCKED varchar(20), @NEW_LOCKED varchar(20)
set @OLD_LOCKED=(select IS_LOCKED_ from DELETED)
set @NEW_LOCKED=(select IS_LOCKED_ from INSERTED)
if(@NEW_LOCKED='N')
begin
update dcms_hy15.SIM_CARD_RESOURCE2_ set org_id_=b.org_id_,commission_id_=b.commission_id_,
packer_=b.packer_,amount_=b.amount_,is_locked_=b.is_locked_,
locked_request_=b.locked_request_,plan_commission_=b.plan_commission_,
msisdn_=b.msisdn_,big_box_id_=b.big_box_id_,little_box_id_=b.little_box_id_,
zha_id_=b.zha_id_,is_ready_overdue_=b.is_ready_overdue_,
is_warning_=b.is_warning_,input_date_time_=b.input_date_time_,
sales_date_time_=b.sales_date_time_,active_date_=b.active_date_,
status_date_=b.status_date_,wait_back_date_=b.wait_back_date_,
call_back_date_=b.call_back_date_,is_integral_=b.is_integral_,
is_active_=b.is_active_,request_id_=b.request_id_,
status_=b.status_,life_status_=b.life_status_,
original_box_=b.original_box_,original_case_=b.original_case_,
original_package_=b.original_package_,old_card_=b.old_card_,
last_updated_stamp_=b.last_updated_stamp_,last_updated_tx_stamp_=b.last_updated_tx_stamp_
from dcms_hy15.SIM_CARD_RESOURCE2_ a,INSERTED b
where a.id_=b.id_
end
end
分享到:
相关推荐
### SQL Server 触发器知识点解析 ...通过以上内容的解析,我们可以了解到SQL Server触发器的基本使用方法及其在实际开发中的应用场景。触发器作为一种强大的工具,能够帮助开发者轻松地维护数据库的完整性和一致性。
这个资源“第05节:SQLServer触发器Demo源代码.rar”很可能是包含了一个C#项目,该项目演示了如何在应用程序中创建、使用和管理SQL Server触发器。通过学习和理解这些示例代码,开发者可以更好地掌握在C#环境中操作...
### SqlServer触发器详解与案例分析 #### 一、触发器概述 触发器是一种特殊类型的存储过程,它被定义为当特定的事件(如数据的插入、更新或删除)发生时自动执行。Sql Server 中的触发器可以用来强制业务规则或者...
* SQL Server 触发器的概念和应用 * 分布式事务处理服务(MSDTC)的概念和应用 * 链接服务器的创建和应用 * 存储过程的创建和应用 * 作业的创建和应用 这些知识点都是 SQL Server 数据库管理和开发中非常重要的内容...
SQL Server触发器是数据库管理系统中一种非常重要的特性,它允许开发者在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时执行自定义的SQL代码。这些操作被称为触发事件,而触发器则是对这些事件的响应。理解并...
本资源“一个SqlServer触发器的Delphi应用源代码..rar”显然是一个结合了这两个技术的实例,旨在帮助开发者了解如何在Delphi中使用SQL Server触发器。 触发器是SQL Server中的一个重要特性,它是一种存储过程,由...
### SQL Server 触发器详解 #### 一、触发器概念 触发器是SQL Server中一种特殊的存储过程,其特点在于不能被显式地调用,而是当对特定表进行数据操作(如插入、更新或删除)时自动激活。通过这种方式,触发器能够...
在SQL Server中,触发器是一种特殊的存储过程,它在数据库中的特定事件发生时自动执行,如数据插入、更新或删除操作。本视频讲解将深入探讨触发器的创建、编辑、修改及其功能,帮助用户更好地理解和应用这些技术。 ...
### SQL Server 创建触发器实现远程服务器相应执行SQL语句 #### 概述 本文将详细介绍如何在SQL Server中创建触发器来实现当本地数据库发生数据插入时,在远程服务器上相应地执行SQL语句,实现数据同步。这通常用于...
根据给定的文件信息,我们可以深入探讨如何在SQL Server中创建一个触发器,该触发器在新用户添加到系统时自动发送电子邮件和短信通知。这一技术应用广泛于各种需要即时通知用户注册确认、账户激活或密码重置的场景中...
"使用SQL Server触发器实现数据表的级联更新" SQL Server触发器是数据库中的一种机制,用于实现数据的级联更新。触发器可以被看作是一种特殊的存储过程,可以在数据库事件的触发下执行复杂的SQL语句,从而实现比...
Sqlserver 触发器例子 Sqlserver 触发器是指在 Sqlserver 数据库中,对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。常见的触发器有三种:分别应用于 Insert、Update、...
在讨论SQL Server中多行数据更新的触发器应用研究时,首先需要了解触发器的定义以及其工作原理。触发器是数据库管理系统中的一种特殊存储过程,它能自动响应数据库中的数据操纵事件,比如插入、更新或删除操作。...
在SQL Server中,触发器是一种特殊的存储过程,它在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行,以实现复杂的数据完整性规则或业务逻辑。本篇将深入探讨触发器的基本概念、类型、分类及如何实现...
本篇文章详细介绍了如何通过SQL Server触发器技术创建数据跟踪日志,确保数据安全,并提供了一个应用实例,即利用SQL Server 2000数据库触发器来实现对数据表变化的跟踪。 首先,触发器在数据表发生特定操作时自动...
SQL Server的触发器是一种特殊的存储过程,它在特定的数据操作事件(INSERT、UPDATE或DELETE)发生时自动执行,用于扩展数据库系统的功能,实现更复杂的业务逻辑。触发器可以帮助确保数据完整性,实现级联操作,或者...
在SQL Server中,触发器是一种数据库对象,它可以在数据更改(INSERT、UPDATE或DELETE)时自动执行。在处理大量数据的Merge操作时,触发器可能会一次性处理多行,这可能导致性能问题或者不符合预期的行为。标题和...
SQL SERVER触发器在学生管理系统中的应用 本文主要介绍了 SQL SERVER 触发器在学生管理系统中的应用,触发器是一种重要的数据库技术,可以保证数据的完整性和一致性。本文从触发器的作用、类型、工作原理等方面进行...
先简单描述一下SQL Server触发器。 SQL Server触发器的inserted和deleted SQL Server为每个触发器都创建了两个专用虚拟表:inserted表和deleted表。这两个表由系统来维护,他们存在于内存中,而不是在数据库中。这两...