`

sql server 2005 触发器trigger

阅读更多
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。

insert 触发器示例
将新增的数据放到histotry历史表中:
CREATE  TRIGGER [dbo].[insert_lib_items] 
   ON   [dbo].[lib_items]
   AFTER INSERT
AS 
BEGIN
	insert into his_lib_items( 
		operation_date, perform_id, value, point
	)
	select getdate() as operation_date ,operation_date, perform_id, value, point
	from inserted 
END

update触发器示例
将修改前的数据放到histotry历史表中:(注意,这里使用from DELETED,得到的是修改前的数据,若使用inserted将得到修改后的数据)
CREATE  TRIGGER [dbo].[update_lib_items] 
   ON  [dbo].[lib_items]
   AFTER UPDATE 
AS 
BEGIN
	insert into his_lib_items(
		operation_date,perform_id, value, point
	)
	select getdate() as operation_date,perform_id, value, point
	from DELETED 
END

delete触发器示例
将删除的数据放到histotry历史表中(注意,这里from DELETED 将得到被删除的数据):
CREATE  TRIGGER [dbo].[delete_lib_items] 
   ON   [dbo].[lib_items]
   AFTER DELETE
AS 
BEGIN
	insert into his_lib_items( 
		operation_date,perform_id, value, point
	)
	select getdate() as operation_date,perform_id, value, point
	from DELETED 
END

总结:
当对某张表建立触发器后,分3种情况讨论

  1.插入操作(Insert)

  Inserted表有数据,Deleted表无数据

  2.删除操作(Delete)

  Inserted表无数据,Deleted表有数据

  3.更新操作(Update)

  Inserted表有数据(新数据),Deleted表有数据(旧数据)
  • 大小: 7.7 KB
  • 大小: 14.1 KB
分享到:
评论

相关推荐

    SQLSERVER触发器插入数据

    CREATE TRIGGER TT ON TSYS_BAMKZ FOR INSERT AS INSERT TSYS_MKZ SELECT B.MKZM,A.yhz,B.PARENT FROM (SELECT DISTINCT yhz FROM TSYS_MKZ) A,INSERTED B

    SQL_Server触发器创建、删除、修改、查看示例

    SQL_Server触发器创建、删除、修改、查看示例

    sqlserver触发器例子

    sqlserver触发器例子 一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。 二﹕ SQL ...

    SQL Server 使用触发器(trigger)发送电子邮件步骤详解

    本文分步骤给大家详细介绍了SQL Server 使用触发器(trigger)发送电子邮件的方法,需要的朋友可以参考下

    SQLServer2005数据库学习笔记

    笔记是本人学习SQLServer一段时间后重新整理出来的,适合有一些入门基础的人学习。 ├─01 安装及使用 │ SQLServer2005安装及使用.txt ... SQLServer2005无法用SQLServer身份登录.txt Sqlserver数据库总结.sql

    SQL触发器trigger

    sqlserver的触发器。简单介绍了对表的增删改查触发效果有具体实例。便于理解

    sqlserver 禁用触发器和启用触发器的语句

    您可能感兴趣的文章:SQLServer2005触发器提示其他会话正在使用事务的上下文的解决方法SQL Server触发器及触发器中的事务学习SQL Server 触发器 表的特定字段更新时,触发Update触发器SQLServer触发器创建、删除、...

    SQL Server数据库实验_存储过程与触发器设计.docx

    SQL SERVER为每个触发器都创建了两个临时表INSERTED表和DELETED表,这两个表的逻辑结构与被触发器作用的表一样,用户可以读取这两个表的内容,但不能对它们进行修改,触发器执行完后,这两个表也会自动删除。...

    sqlserver的触发器

    create trigger trig_InsertTransInfo on TransInfo for insert as begin declare @cardId char(10) declare @type char(4) declare @money money select @cardId=CardId,@type=transType,@money=transMoney ...

    获取SQL触发器的状态

    获取SQL触发器的状态,是启用还是停用,业务系统有时候停用了触发器,可以用此检测

    SQL Server 触发器 表的特定字段更新时,触发Update触发器

    代码如下: create trigger TR_MasterTable_Update on MasterTable after update as if update ([Type])–当Type字段被更新时,才会触发此触发器 insert into MasterLogTable select Id ,(Case [Type] when 1 then ...

    SQLServer触发器创建、删除、修改、查看示例代码

    二: SQL Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。这两个表。 一: 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器...

    SQLServer2005触发器提示其他会话正在使用事务的上下文的解决方法

    MSDN上看了一下说是sql server 2005不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器)个人尝试了下是由于在双向的sql server访问中采用了链式方式访问(LinkedServer方式),遇到这种情况只需要...

    SQL_Server-trigger.rar_trigger_创建触发器

    SQL Server触发器创建、删除、修改、查看示例教程 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束...

    SQL Server2005基础教程

    本书重点阐述了SQL Server 2005的基础知识,前半部分以建立一个金融数据库系统为主线,从最基础的收集信息入手,一步步地引导读者学会如何保证数据库的安全,创建表、主键、索引等项目,在表之间建立恰当的关系,并...

    sqlserver 触发器学习(实现自动编号)

    总结常用基本点如下: 1、触发器有两种类型:数据定义语言触发器(DDL触发器)和数据操纵语言触发器(DML触发器)。... 3、触发器创建语法: 代码如下: CREATE TRIGGER <trigger> ON <table> {{{FOR|AFTER} <

    了解SQLServer触发器及触发器中的事务

    SqlServer触发器详解

    触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( ...

    sqlserver中触发器+游标操作实现

    代码如下: Create trigger tri_wk_CSVHead_History on wk_CSVHead_History –声明一个tri_wk_CSVHead_History触发器, instead of insert —插入操作被代替执行下面的操作 as begin declare YB cursor –声明一个...

    讲解SQL Server数据库的触发器安全隐患

    CREATE TRIGGER权限默认授予定义触发器的表所有者、sysadmin固定服务器角色成员以及db_owner和db_ddladmin固定数据库角色成员,...本文以动网论坛dvbbs为例介绍了SQL Server数据库的触发器安全隐患并提出了解决办法。

Global site tag (gtag.js) - Google Analytics