1. 触发器是一张表的增删改操作,引起或触发对还有一张表的增删改操作,所以触发器便有3种类型。各自是deleted触发器。Update触发器,insert触发器
  2. 触发器又依据替换原来的增删改操作,还是在原来的增删改完毕之后进行增删改操作。分为Instead of触发器和For或者After触发器(for和after属于一种触发器)
  3. 触发器的使用涉及到两张很重要的表用来保存已经改变或者已经在第一章被操作的表上不存在的记录。各自是虚拟表Inserted和虚拟表Deleted

         

虚拟表Inserted

虚拟表Deleted

在表记录新增时

存放新增的记录

不存储记录

改动时

存放用来更新的新记录

存放更新前的记录

删除时

不存储记录

存放被删除的记录

  1. 以下举一个在机房收费系统重构个人版中用到的易于理解的关于触发器的小样例

    1. 在我们删除T_OnWork_info表中的正在上机工作记录时,同一时候向T_Work_info表中写入工作记录,还同一时候将T_Admin_info表中的IsOn字段改为False
      CREATE TRIGGER trigger_delOnWork
      
      ON T_OnWork_info
      
      FOR DELETE
      
      AS
      
      DECLARE @name varchar(10)
      DECLARE @loginDate varchar(10)
      DECLARE @loginTime varchar(10)
      DECLARE @logoutDate varchar(10)
      DECLARE @logoutTime varchar(10)
      DECLARE @comName varchar(10) SELECT @name =(SELECT NAME FROM deleted )
      SELECT @loginDate =(SELECT loginDate FROM deleted )-----deleted表用于存储T_OnWork表中已经删除的记录
      SELECT @loginTime =(sELECT loginTime FROM deleted )
      SELECT @comName =(SELECT comName FROM deleted )
      SET @logoutDate=convert(varchar(10),getdate(),101)
      SET @logoutTime =convert(varchar(10),getdate(),108) if (SELECT COUNT(*) FROM deleted )=1 BEGIN INSERT INTO T_Work_info(Name,loginDate,loginTime,logoutDate,logoutTime,comName) VALUES(@name,@loginDate ,@loginTime ,@logoutDate,@logoutTime,@comName ) UPDATE T_Admin_info SET IsOn='False' WHERE Name=(SELECT Name FROM deleted ) ROLLBACK TRAN --事务回滚 END

      怎么样,触发器非常easy吧,大家能够尝试着用用,触发器+事务的回滚机制。非常容易地做到了为代码减负

版权声明:本文博主原创文章。博客,未经同意不得转载。

SQL Server -减少代码触发的负担的更多相关文章

  1. CVE-2020-0618 SQL Server远程代码执行

    1.简介 SQL Server Reporting Services(SSRS)提供了一组本地工具和服务,用于创建,部署和管理移动报告和分页报告. SSRS Web应用程序中的功能允许低特权用户帐户通 ...

  2. SQL Server 异常代码处理

    SQL Server使用TRY...CATCH 结构实现TSQL语句的错误处理,TRY命令负责监控语句执行的情况,如果有TSQL语句发生异常,并且严重级别(Severity Level)大于10,并且 ...

  3. Visual Studio 连接 SQL Server 关键代码

    首先先把Visual Studio 上面工具打开-->连接数据库-->选择Microsoft SQL Server进入(有两种验证方式:1.windows验证方式[就是本机验证]:2.SQ ...

  4. C#操作access和SQL server数据库代码实例

    在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...

  5. 一段后台C#查询SQL Server数据库代码

    using System; using System.Data; using System.Collections.Generic; using System.Linq; using System.W ...

  6. Sql Server——运用代码创建数据库及约束

    在没有学习运用代码创建数据库.表和约束之前,我们只能用鼠标点击操作,这样看起来就不那么直观(高大上)了. 在写代码前要知道在哪里写和怎么运行: 点击新建查询,然后中间的白色空白地方就是写代码的地方了. ...

  7. sql server 数据库代码备份及还原代码

    --备份 BACKUP DATABASE [库名称] TO DISK='E:\qq\ddd.bak' --备份并覆盖 BACKUP DATABASE [库名称] TO DISK='E:\qq\ddd. ...

  8. SQL Server 为代码减负之存储过程

        存储过程能够用来提高数据库的查询效率.由于它事先被编译过.被储存于内存中,每次执行前.不必被从新编译,所以效率非常高. 存储过程是一组sql增删改查的集合,假设程序中的一个功能涉及到对数据库的 ...

  9. SQL Server数据库代码指令简介

    这些是比较常用的命令操作,事先声明,这些命令是不区分大小写的,我按照我的课本来总结用法和知识点,无用的章节自动省略. 没有一点数据库知识基础的可以等我录制视频,不然可能看不懂,视频链接:http:// ...

随机推荐

  1. R 语言开发环境搭建

    R 语言在统计计算和画图方面有着显著的优势,因此在大数据领域也有其一席之地. 本文将演示怎样搭建R 语言开发环境. 搭建R 语言开发环境,主要有两个步骤: - 安装 R 到操作系统 - 安装支持 R ...

  2. Linux IO 调度器

    Linux IO Scheduler(Linux IO 调度器) 每个块设备或者块设备的分区,都对应有自身的请求队列(request_queue),而每个请求队列都可以选择一个I/O调度器来协调所递交 ...

  3. UpdatePanel Repeater内LinkButton造成页面刷新问题

    本意:UpdatePanel1内嵌的Repeater1中带有LinkButton1, 将由LinkButton1触发页面的UpdatePanel2更新,而不需要更新UpdatePanel1,当然也不需 ...

  4. 用Python的Tkinter实现时钟

    import Tkinter,sys,time root=Tkinter.Tk() root.minsize(, ) Label1=Tkinter.Label(text=time.strftime(' ...

  5. hdu4115 Eliminate the Conflict

    Eliminate the Conflict Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...

  6. 一些周期性GC的理由为何

    1.供tomcat:防止内存泄漏监听器 JreMemoryLeakPreventionListener在上班,每隔一小时默认触发一次System.gc Class clazz = Class.forN ...

  7. Jndi使用好处,与简单实例【Tomcat】

    JNDI学习总结(一)——JNDI数据源的配置 一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动 ...

  8. maven仓库总结,maven私服搭建

    配置pom.xml依赖包时在这里找包的描述: http://search.maven.org/#browse 以java为根目录. mvn archtype:generate -DgroupId=zt ...

  9. Android之Http通信——3.Android HTTP请求方式:HttpURLConnection

    3.Android HTTP请求方式之HttpURLConnection 引言: 好了,前两节我们已经对HTTP协议进行了学习.相信看完前两节的朋友对HTTP协议相比之前 应该更加熟悉吧.好吧.学了要 ...

  10. 天翼玩家wifi,鸡肋or神器?

    昨天,天一在成都,一个举行4G体验活动.谁是背着一个婴儿每一翼4G MiFi终奌站.市民可进入用户password自由的直接经验wifi互联网. 天翼随身wifi是什么? 这样的4G MiFi就是天翼 ...