更新事务类似于在删除之后执行插入;首先旧行被复制到 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
分享到:
相关推荐
本资源介绍通过SqlServer的触发器调用WebService的应用。通过本资源可扩展为存储过程调用,调用方式与触发器一致。使用该方式可快速、便捷的将数据通过WebService向外部传递。节省开发外部接口程序。
这个资源“第05节:SQLServer触发器Demo源代码.rar”很可能是包含了一个C#项目,该项目演示了如何在应用程序中创建、使用和管理SQL Server触发器。通过学习和理解这些示例代码,开发者可以更好地掌握在C#环境中操作...
* SQL Server 触发器的概念和应用 * 分布式事务处理服务(MSDTC)的概念和应用 * 链接服务器的创建和应用 * 存储过程的创建和应用 * 作业的创建和应用 这些知识点都是 SQL Server 数据库管理和开发中非常重要的内容...
SQL Server触发器是数据库管理系统中一种非常重要的特性,它允许开发者在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时执行自定义的SQL代码。这些操作被称为触发事件,而触发器则是对这些事件的响应。理解并...
本资源“一个SqlServer触发器的Delphi应用源代码..rar”显然是一个结合了这两个技术的实例,旨在帮助开发者了解如何在Delphi中使用SQL Server触发器。 触发器是SQL Server中的一个重要特性,它是一种存储过程,由...
在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?...
在SQL Server中,触发器是一种特殊的存储过程,它在数据库中的特定事件发生时自动执行,如数据插入、更新或删除操作。本视频讲解将深入探讨触发器的创建、编辑、修改及其功能,帮助用户更好地理解和应用这些技术。 ...
"使用SQL Server触发器实现数据表的级联更新" SQL Server触发器是数据库中的一种机制,用于实现数据的级联更新。触发器可以被看作是一种特殊的存储过程,可以在数据库事件的触发下执行复杂的SQL语句,从而实现比...
Sqlserver 触发器例子 Sqlserver 触发器是指在 Sqlserver 数据库中,对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。常见的触发器有三种:分别应用于 Insert、Update、...
SQL Server中多行数据更新的触发器应用研究.pdf
SQL Server触发器的应用.pdf
SQL Server的触发器是一种特殊的存储过程,它在特定的数据操作事件(INSERT、UPDATE或DELETE)发生时自动执行,用于扩展数据库系统的功能,实现更复杂的业务逻辑。触发器可以帮助确保数据完整性,实现级联操作,或者...
先简单描述一下SQL Server触发器。 SQL Server触发器的inserted和deleted SQL Server为每个触发器都创建了两个专用虚拟表:inserted表和deleted表。这两个表由系统来维护,他们存在于内存中,而不是在数据库中。这两...
SQL SERVER触发器在学生管理系统中的应用 本文主要介绍了 SQL SERVER 触发器在学生管理系统中的应用,触发器是一种重要的数据库技术,可以保证数据的完整性和一致性。本文从触发器的作用、类型、工作原理等方面进行...
SqlServer触发器可以应用于Insert、Update、Delete等事件。 触发器的定义:在SQL Server中,触发器是一个特殊的存储过程,当某个表发生变化时,触发器就会被激活,并执行相应的操作。触发器可以应用于Insert、...
总之,SQL Server 2005中的触发器是数据库管理和应用程序设计中的重要工具,它们允许我们在特定的数据库操作中嵌入复杂的逻辑,以实现更精细的数据控制。在实际应用中,我们需要根据具体需求合理设计和使用触发器,...
在SQL Server中,触发器是一种特殊的存储过程,它们在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行,为数据库提供了更高级别的控制和业务逻辑实施。 一、触发器介绍 触发器可以视为数据库规则和...
巧妙应用SQL Server触发器.pdf
在SQL Server中,触发器和存储过程是两个重要的数据库编程...在"SQL Server常用操作触发器、存储过程.rar"这个压缩包中,你将找到关于这两个主题的详细教程,通过学习和实践,你将能够更好地掌握它们的用法和应用场景。
本文将深入探讨SQL Server触发器在教务管理系统中的应用,以及如何利用其特性来实现高效的数据管理和业务逻辑。 首先,触发器可以确保数据的完整性。在教务管理系统中,可能需要维护一些复杂的业务规则,例如学生的...