`
raymond.chen
  • 浏览: 1426032 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

SqlServer触发器的应用

 
阅读更多

更新事务类似于在删除之后执行插入;首先旧行被复制到 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 

 

3
0
分享到:
评论

相关推荐

    SqlServer触发器调用WebService

    本资源介绍通过SqlServer的触发器调用WebService的应用。通过本资源可扩展为存储过程调用,调用方式与触发器一致。使用该方式可快速、便捷的将数据通过WebService向外部传递。节省开发外部接口程序。

    第05节:SQLServer触发器Demo源代码.rar

    这个资源“第05节:SQLServer触发器Demo源代码.rar”很可能是包含了一个C#项目,该项目演示了如何在应用程序中创建、使用和管理SQL Server触发器。通过学习和理解这些示例代码,开发者可以更好地掌握在C#环境中操作...

    SQLServer触发器实现不同服务器数据同步.pdf

    * SQL Server 触发器的概念和应用 * 分布式事务处理服务(MSDTC)的概念和应用 * 链接服务器的创建和应用 * 存储过程的创建和应用 * 作业的创建和应用 这些知识点都是 SQL Server 数据库管理和开发中非常重要的内容...

    sql server触发器.rar

    SQL Server触发器是数据库管理系统中一种非常重要的特性,它允许开发者在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时执行自定义的SQL代码。这些操作被称为触发事件,而触发器则是对这些事件的响应。理解并...

    一个SqlServer触发器的Delphi应用源代码..rar

    本资源“一个SqlServer触发器的Delphi应用源代码..rar”显然是一个结合了这两个技术的实例,旨在帮助开发者了解如何在Delphi中使用SQL Server触发器。 触发器是SQL Server中的一个重要特性,它是一种存储过程,由...

    SQL server 触发器实例

    在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?...

    SQL SERVER 触发器视频讲解

    在SQL Server中,触发器是一种特殊的存储过程,它在数据库中的特定事件发生时自动执行,如数据插入、更新或删除操作。本视频讲解将深入探讨触发器的创建、编辑、修改及其功能,帮助用户更好地理解和应用这些技术。 ...

    使用SQL Server触发器实现数据表的级联更新.pdf

    "使用SQL Server触发器实现数据表的级联更新" SQL Server触发器是数据库中的一种机制,用于实现数据的级联更新。触发器可以被看作是一种特殊的存储过程,可以在数据库事件的触发下执行复杂的SQL语句,从而实现比...

    Sqlserver触发器例子

    Sqlserver 触发器例子 Sqlserver 触发器是指在 Sqlserver 数据库中,对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。常见的触发器有三种:分别应用于 Insert、Update、...

    SQL Server中多行数据更新的触发器应用研究.pdf

    SQL Server中多行数据更新的触发器应用研究.pdf

    SQL Server触发器的应用.pdf

    SQL Server触发器的应用.pdf

    关于SqlServer 触发器的PPT

    SQL Server的触发器是一种特殊的存储过程,它在特定的数据操作事件(INSERT、UPDATE或DELETE)发生时自动执行,用于扩展数据库系统的功能,实现更复杂的业务逻辑。触发器可以帮助确保数据完整性,实现级联操作,或者...

    利用SQL Server触发器实现表的历史修改痕迹记录

    先简单描述一下SQL Server触发器。 SQL Server触发器的inserted和deleted SQL Server为每个触发器都创建了两个专用虚拟表:inserted表和deleted表。这两个表由系统来维护,他们存在于内存中,而不是在数据库中。这两...

    SQL SERVER触发器在学生管理系统中应用.pdf

    SQL SERVER触发器在学生管理系统中的应用 本文主要介绍了 SQL SERVER 触发器在学生管理系统中的应用,触发器是一种重要的数据库技术,可以保证数据的完整性和一致性。本文从触发器的作用、类型、工作原理等方面进行...

    SqlServer触发器例子.pdf

    SqlServer触发器可以应用于Insert、Update、Delete等事件。 触发器的定义:在SQL Server中,触发器是一个特殊的存储过程,当某个表发生变化时,触发器就会被激活,并执行相应的操作。触发器可以应用于Insert、...

    基于sql server 2005的触发器的创建及操作

    总之,SQL Server 2005中的触发器是数据库管理和应用程序设计中的重要工具,它们允许我们在特定的数据库操作中嵌入复杂的逻辑,以实现更精细的数据控制。在实际应用中,我们需要根据具体需求合理设计和使用触发器,...

    sql server 2005第十二课(sql server触发器)

    在SQL Server中,触发器是一种特殊的存储过程,它们在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行,为数据库提供了更高级别的控制和业务逻辑实施。 一、触发器介绍 触发器可以视为数据库规则和...

    巧妙应用SQL Server触发器.pdf

    巧妙应用SQL Server触发器.pdf

    SQL Server常用操作触发器、存储过程.rar

    在SQL Server中,触发器和存储过程是两个重要的数据库编程...在"SQL Server常用操作触发器、存储过程.rar"这个压缩包中,你将找到关于这两个主题的详细教程,通过学习和实践,你将能够更好地掌握它们的用法和应用场景。

    SQL Server触发器在教务管理系统中的应用探索.pdf

    本文将深入探讨SQL Server触发器在教务管理系统中的应用,以及如何利用其特性来实现高效的数据管理和业务逻辑。 首先,触发器可以确保数据的完整性。在教务管理系统中,可能需要维护一些复杂的业务规则,例如学生的...

Global site tag (gtag.js) - Google Analytics