SQL Server---触发
今天的第一次SQL Server触发感觉很方便,本文将向您介绍一个简单的SQL Server触发器和简单的使用。
我将确定其、原理、使用细节都是关于。
定义
触发器(trigger)是个特殊的存储过程,它的运行不是由程序调用。也不是手工启动,而是由某个事件来触发,比方当对一个表进行操作(insert。delete。update)时就会激活它运行。
原理
触发器能够查询其它表。并且能够包括复杂的SQL语句。
触发器也可用于强制引用完整性。以便在多个表中加入、更新或删除行时,保留在这些表之间所定义的关系。
SQLServer包含三种常规类型的触发器:DML触发器、DDL触发器和登录触发器。
DML触发器
当数据库中表中的数据发生变化时。包含insert,update,delete随意操作,假设我们对该表写了相应的DML触发器,那么该触发器自己主动运行。
DDL触发器
它是SqlServer2005新增的触发器。主要用于审核与规范对数据库中表,触发器。视图等结构上的操作。
登录触发器
登录触发器将为响应LOGON事件而激发存储过程。
详细使用方法
再敲机房收费系统的时候。在涉及到学生上下机的时候,我们就要对T_Line和T_Online这两张表进行操作,下机的时候我们须要删除T_Online表中的信息将它写入T_Line中。採用三层架构重构时。顿时认为从一个表中得到数据返回U层再将其赋值给还有一个实体当作參数终于传入还有一张表中非常是麻烦。
于是我就想到了触发器。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <老牛>
-- Create date: <2014-6-2 15:28:00>
-- Description: <删除正在上机的学生时同一时候将相关信
-- 息加入到学生上机记录表中>
-- =============================================
CREATE TRIGGER [dbo].[triq_T_OnlineDelete]
ON [dbo].[T_Online]
instead of Insert
AS
BEGIN
declare @CardNo numeric(11, 0)
declare @studentNo numeric(11, 0)
declare @studentName varchar(10) --获取參数信息
select @CardNo=cardNo,@studentNo=studentNo ,@studentName=studentName from deleted
--加入学生上机记录
insert into T_Line (cardNo,studentNo ,studentName ) values (@CardNo,@studentNo,@studentName)
--删除正在上机的学生信息
delete T_Online where cardNo =@CardNo
END
GO
(PS:上段代码(经測试正确)仅仅用到了表中的几个字段其它字段也可用类似方法,特别要注意的是如何获取下机时间(hh-mm-ss)和下机日期(yyyy-mm-dd),比如:Select CONVERT(varchar(100),GETDATE(), 24。Select CONVERT (varchar(10),getdate(),120))
心得体会
写到这里我想到那句话“的驱动力被发现,但”,我们还使用了学习过程SQL Server有一段时间,在我们接触到的理论这么多东西的接触一直觉得非常深刻的方式。我会一直认为简单的CRUD能够解决眼前的问题。
我们将不再只有当我们学习一门新技术,会感觉。原来还有这样的事情。
SQL Server---触发的更多相关文章
- SQL SERVER 触发器之After,Instead of
[Ater](同for)先执行增删改操作,再执行触发器操作 [Instead of]直接只执行触发器里的 create trigger triggername on table_name for/af ...
- SQL server 表数据改变触发发送邮件
今天遇到一个问题,原有生产系统正在健康运行,现需要监控一张数据表,当增加数据的时候,给管理员发送邮件. 领到这个需求后,有同事提供方案:写触发器触发外部应用程序.这是个大胆的想法啊,从来没写过这样的触 ...
- SQL Server 2017的Linked Server配置触发的bug“Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION”
SQL Server 2017的Linked Server配置触发的bug"Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION&q ...
- 如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版
背景: 由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...
- Performance Monitor4:监控SQL Server的IO性能
SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Applicati ...
- SQL Server 服务器磁盘测试之SQLIO篇(二)
上次放出了一篇文章,针对磁盘卷簇大小默认4KB和自定义64KB进行了测试,测试内容为随机和顺序读写,大小为8KB和64KB,有人觉得这并没有照顾到SQL Server所有的IO使用情景.这篇测试文章, ...
- Sql Server 内存相关计数器以及内存压力诊断
在数据库服务器中,内存是数据库对外提供服务最重要的资源之一, 不仅仅是Sql Server,包括其他数据库,比如Oracle,MySQL等,都是一类非常喜欢内存的应用. 在Sql Server服务器中 ...
- SQL Server触发器
一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...
- SQL Server 触发器
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 触发器对表进行插入.更新.删 ...
- SQL Server CheckPoint的几个误区
有关CheckPoint的概念对大多数SQL Server开发或DBA人员都不陌生.但是包括我自己在内,大家对于CheckPoint都或多或少存在某些误区,最近和高文佳同学(感谢高同学的探讨) ...
随机推荐
- selinux 工具下载地址
http://userspace.selinuxproject.org/releases/ 里面包含了 Name Last modified Size Description Parent Direc ...
- Windows Phone 8 - 建立App专属联络人资讯(ContactStore)
原文:Windows Phone 8 - 建立App专属联络人资讯(ContactStore) 在WP7的时候介绍了如何操作联络人的功能,例如:<Windows Phone 7 - 存取联络人与 ...
- Vim配置说明
使用这些天一直vim,我认为vim这是一个非常强大的编辑器,尤其是后配置. 互联网参考大牛个月vim配置,然后更改加入了一部分,形成了自己的配置.让Vim变的更强大. 详细有下面几个特点: 1.自己主 ...
- OOP思想
OOP思想 读者朋友们大家好,我们今天这一讲就接着前面的封装继续讲解,今天就是在前面内容上面的升级,OOP思想中的继承,我们就先来解释一下继承到底是什么意思,我们在什么地方会用到继续. 继承就是,后代 ...
- oracle db于,一个特定的数据字典pct miss其计算公式
这篇文章是原创文章,转载请注明出处: http://blog.csdn.net/msdnchina/article/details/38766801 本文提到的数据字典.以dc_histogram_d ...
- 的无线通信网络的学习LTE的关键技术HARQ(20141217)
今天,我们就来一起看一下LTE申请的关键技术HARQ(自己主动混合重传技术) 因为在信道传输过程中的信息,它会产生信息丢失,因此,为了维持的信息的完整性.总是有重发信息,完成所有的迄今收到的资料. 首 ...
- UBuntu经常使用的操作(网络资源)
http://docs.google.com/Doc? id=dqsbw4c_46d89djccr 版权声明:本文博主原创文章.博客,未经同意不得转载.
- java假设去请求一个网页的数据
我们能够通过在java程序中模拟浏览器一样,把数据抓下来,详细方法是在java程序中set header和cookie,以下是一个样例: public class NetConnection { pu ...
- 【剑指offer】最小的k的数量
转载请注明出处:http://blog.csdn.net/ns_code/article/details/26966159 题目描写叙述: 输入n个整数,找出当中最小的K个数.比如输入4,5,1,6, ...
- row_number()、rank()、dense_rank()、ntile()
原文:row_number().rank().dense_rank().ntile() SQL2005中row_number()等函数的用法 2005比2000新增了几个函数,分别是row_numbe ...