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:

-- Create date:

-- 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

mysql inserted表_数据库触发器inserted和deleted详解相关推荐

  1. MySQL建表(那些字段必须)命令详解

    MySQL建表(那些字段必须)命令详解1. create table命令 强调:使用建表命令之前必须使用use命令选择表所在的数据库.create table命令的格式如下: create table ...

  2. mysql inserted表_数据库inserted的搜索结果-阿里云开发者社区

    SQL 2000中的触发器使用 触发器是数据库应用中的重用工具,它的应用很广泛,这几天写一个化学数据统计方面的软件,需要根据采样,自动计算方差,在这里,我使用了触发器. 下面我摘录了SQL Serve ...

  3. mysql账目表_数据库1(数据库、表及表数据、SQL语句)

    01数据库概念 A: 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来, 用户可以对数据库中的数据进行增加,修改,删除及查询操作. B: 什么是数据库管理 ...

  4. nodejs mysql 分表_数据库分库分表学习

    大型网站数据库分库分表 分库分表方案: 垂直&水平 1.什么是垂直拆分? 指的是将一个包含了很多表的数据库,根据表的功能的不同,拆分为多个小的数据库,每个库中包含部分表. .垂直拆分的另外2种 ...

  5. thinkphp mysql分表_数据库分表和分库的原理及基于thinkPHP的实现方法

    为什么要分表,分库: 当我们的数据表数据量,访问量很大,或者是使用频繁的时候,一个数据表已经不能承受如此大的数据访问和存储,所以,为了减轻数据库的负担,加快数据的存储,就需要将一张表分成多张,及将一类 ...

  6. metinfo mysql 数据表_数据库结构-米拓帮助文档

    | 序号 | 表名称 | 说明 | | ------------ | ------------ | ------------ | | 1 | [met_admin_array](http://doc. ...

  7. mysql密码高级_MySQL数据库高级操作(图文详解)

    数据表高级操作 准备工作:安装MySQL数据库 create database CLASS; use CLASS; create table TEST (id int not null,name ch ...

  8. linux mysql恢复数据_删库不跑路详解MySQL数据恢复

    作者:程淇铭 出处:https://segmentfault.com/a/1190000020116271 日常工作中,总会有因手抖.写错条件.写错表名.错连生产库造成的误删库表和数据的事情发生,那么 ...

  9. mysql 二叉树表设计_Mysql 索引模型 B+ 树详解

    一.认识二叉树 首先,在了解 mysql 中的 B+ 树之前,我们需要搞懂什么是二叉树.二叉树是一种常见的非线形数据结构,数据是以一对多的形态组织起来的,我画了一张图来帮助你理解: 在二叉树中,有一种 ...

最新文章

  1. valgrind 使用 kcachegrind 查看函数运行时间
  2. 超全的数据库建表/SQL/索引规范,适合贴在工位上!
  3. HTML中通过CSS方式隐藏元素
  4. hdu-1392 Surround the Trees poj Rope (简单凸包)
  5. 台式计算机单核与双核,什么是单核cpu、双核cpu 单核cpu和双核cpu的区别是什么...
  6. 神马搜索聚焦大数据营销 汇川广告平台 快、准、省
  7. request 和require区别_合同翻译时如何区分使用request和require
  8. 数据库服务器备份日志文件,数据库服务器备份日志文件
  9. SAS 9.4 无法正常卸载,手动彻底删除相关文件
  10. 学机器人编程还是计算机编程,为什么要学习机器人编程课程
  11. Google产品设计师:从二维界面到虚拟现实
  12. 北京联通dns服务器位置,全国联通DNS服务器地址
  13. 基础用户登录测试用例-最全用例设计
  14. [系统安全] 二十五.WannaCry勒索病毒分析 (1)Python复现永恒之蓝漏洞实现勒索加密
  15. u盘安装centos8黑屏_u盘centos7 安装 黑屏苹果电脑怎么安装win7系统还原
  16. 关于AI芯片功耗和应用的一些看法
  17. K近邻算法(k-nearest neighbor,KNN)
  18. LuatOS快速上手——GPS定位
  19. java 例外_【JAVA基础】浅析JAVA例外处理(转)
  20. android MVP——mvp架构的应用和优化

热门文章

  1. 博客主要输出内容+CSDN MarkDown编辑器重点学习内容
  2. 呕心沥血铸造—接口自动化测试面试题及答案
  3. 多普勒频移测速与FMCW测距
  4. 如何理解 Spring Boot 中的 Starters
  5. Spring Boot自定义starters
  6. arima基本原理_ARIMA模型原理及实现
  7. 大数据spark开发入门教程
  8. socket epoll模型
  9. hwd分别是长宽高_长宽高都是用什么字母来表示
  10. 省市县乡村 动态级联加载控件AreaRender(二)