create trigger updateDeleteTime
on user
for update
as
begin
update user set UpdateTime=(getdate()) from user inner join inserted on user.UID=Inserted.UID
end

上面的例子是在执行更新操作的时候同时更新,一下修改时间。
关键在于Inserted表
触发器语句中使用了两种特殊的表:deleted 表和 inserted 表。
Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。

Inserted 表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。

1.插入操作(Insert) 
Inserted表有数据,Deleted表无数据

2.删除操作(Delete) 
Inserted表无数据,Deleted表有数据

3.更新操作(Update) 
Inserted表有数据(新数据),Deleted表有数据(旧数据)

应用实例

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go -- =============================================
-- Author: <Author,sufei>
-- Create date: <Create Date,2010-05-11>
-- Description: <当是短信充值时修改相信的记录使记录不会重复获取>
-- =============================================
ALTER TRIGGER [dbo].[updatestart]
ON [dbo].[OrderTelecom] FOR update
AS
BEGIN DECLARE @state int;
DECLARE @note2 varchar(50) SELECT @state= Inserted.ortState,@note2 =Inserted.ortNote2 from Inserted IF @state=1 AND @note2=1
begin
--当发短信猫取走记录时修改状态为成功和取过的状态
update OrderTelecom set OrderTelecom.ortState=2 ,OrderTelecom.ortSmsmessages='短信充值成功'
from OrderTelecom inner join Inserted on OrderTelecom.ortId=Inserted.ortId
end if @state in(2,3,10) and @note2=0
begin
update OrderTelecom set ortNote2=1
from OrderTelecom inner join Inserted on OrderTelecom.ortId=Inserted.ortId
end END

SQL Inserted和deleted详解的更多相关文章

  1. 数据库触发器inserted和deleted详解

    create trigger updateDeleteTime on user for update as begin   update user set UpdateTime=(getdate()) ...

  2. SQL注入攻防入门详解

    =============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...

  3. SQL注入攻防入门详解(2)

    SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱 ...

  4. [转]SQL注入攻防入门详解

    原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============ ...

  5. SQL Server表分区详解

    原文:SQL Server表分区详解 什么是表分区 一般情况下,我们建立数据库表时,表数据都存放在一个文件里. 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆 ...

  6. MS SQL Server 数据库连接字符串详解

    MS SQL Server 数据库连接字符串详解 原地址:http://blog.csdn.net/jhhja/article/details/6096565 问题 : 超时时间已到.在从池中获取连接 ...

  7. 【转载】SQL注入攻防入门详解

    滴答…滴答…的雨,欢迎大家光临我的博客. 学习是快乐的,教育是枯燥的. 博客园  首页  博问  闪存    联系  订阅 管理 随笔-58 评论-2028 文章-5  trackbacks-0 站长 ...

  8. SQL Server2012 安装方法详解

    SQL Server2012 安装方法详解 - MonkeyBrothers的博客 - CSDN博客 https://blog.csdn.net/monkeybrothers/article/deta ...

  9. sql server 存储过程的详解

    SqlServer存储过程详解 1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name')) dro ...

随机推荐

  1. stardict词库

    http://download.huzheng.org/zh_CN/ sudo tar -jxvf *   -C /usr/share/stardict/dic

  2. bootsrtap带表格面板内容居中

    css中,添加 .table th, .table td { text-align: center; vertical-align: middle!important;}

  3. 【代码沉淀】 - EPPlus - 操作xlsx表格文件

    EPPlus - Create advanced Excel spreadsheets on the server.web: http://epplus.codeplex.com/nuget: Ins ...

  4. jdk各种老版本的下载链接

    java SE 1.6各个版本 jdk  api http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downlo ...

  5. 北京Uber优步司机奖励政策(4月13日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. c++ 结束程序的几种方式

    abort exit 一.用abort()结束程序 用abort()表示非正常结束程序.如果要正常结束程序得用exit() 二.用exit()结束程序 用exit()它可以使程序正常结束,这个函数 ...

  7. 【原创翻译】The Free Lunch Is Over

    微软C++大师Herb Sutter的文章<The Free Lunch Is Over>翻译,以前自己也经常翻译,但是都不会上传博客.个人很喜欢这篇文章,所以以此作为翻译生涯的开始. 免 ...

  8. Windows下安装RaibbitMQ

    1.软件准备 1.1 erlang语言包 到http://www.erlang.org/download.html下载,并且运行! 安装目录C:\Program Files (x86)\erl5.10 ...

  9. Docker入门篇(二)之docker的单主机网络

    Docker 安装时会自动在host上创建三个网络,我们可用 docker network ls命令查看: [root@localhost ~]# docker network ls NETWORK ...

  10. Entity Framework中执行Sql语句

           如果想在EF框架中执行Sql语句,其实很简单,EF里面已经提供了相关的方法(此处使用的EF为EF4.1版本).        EF中提供了两个方法,一个是执行查询的Sql语句SqlQue ...