SQLserver数据库之触发器

在SQLserver数据库中触发器中大致分为两种:DDL、DML触发器,即系统触发器与表触发器,系统触发器是对数据库对象进行操作的触发器,表触发器是对表格的增删改时候所进行的触发器。在这里我们就只说表的触发器。

表的触发器也分为两种,分别为:instead of、after(for);分别在表操作之前与表操作之后进行触发。而且两种触发器都有三个触发条件:insert、delete、update。基本语法为:

create trigger tgr_name
on table_name
with encrypion -–加密触发器(一般不用写)
for--触发器类型(如:instead of/after/for)
update--触发类型(如:insert/update/delete)
as
begin
--Transact-SQL
end

触发器是一种特殊类型的存储过程,但它不同于存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。触发器有两个特殊的表:插入表(instered表)和删除表(deleted表)。这两张是逻辑表也是虚表。由系统在内存中创建者两张表,不会存储在数据库中。而且两张表的都是只读的,只能读取数据而不能修改数据。这两张表的结果总是与被改触发器应用的表的结构相同。当触发器完成工作后,这两张表就会被删除。其中两张表与触发条件的关系:

  插入表(insered) 删除表(delete)
插入操作(insert) 插入表中存放插入的记录  
修改操作(update) 插入表中存放更新后的记录 删除表中存放更新前的记录
删除操作(delete)   删除表中存放被删除的旧纪录

原文地址:https://www.cnblogs.com/Bloghjb/p/9359299.html

时间: 2024-11-10 00:18:29

SQLserver数据库之触发器的相关文章

sqlserver数据库的索引、视图和触发器

  Sqlserver数据库的索引.视图和触发器 数据库的索引类似于字典中的目录,无需阅读.可以直接利用目录快速查找所需要的信息 索引的种类: 聚集索引:反应的是数据存储的物理顺序,一个表只能包含一个聚集索引 非聚集索引:不反应数据存储的物理顺序,一个表可以有多个非聚集索引 1.1. 准备环境 1.1.1. 创建聚集索引 目前tstudent表中没有任何索引也没有主键 为tstudent表创建聚集索引 选中studentID,单击左上侧的主键按钮 为Tstuden表的studentID创建主键就

sqlserver数据库 提纲

sqlserver数据库一.体系结构文件--服务--界面 文件---.maf .ldf .ndf服务--MSSqlserver,别名(实例名)界面--宋庆龄serve如何windouws身份验证,如何从windows身份严恒变为sqlserver验证二. 创建建库.改库.删除 create database alter database drop database建表.改表.删表 create table alter table drop table 1 库:文件位置.初始大小.增长方式.次数据

MYSQL,DB2,SQLSERVER数据库不同点浅探(一)

简单地比较一下MYSQL,DB2,SQLSERVER数据库设计不同点,为日后看MYSQL源代码先打打底,今天先比较数据库对象吧: 1.DB2上关于表有一个表空间的概念,简单地说, 表空间是数据库系统中数据库逻辑结构与操作系统物理结构之间建立映射的重要存储结构,一般来说一个表空间对应一个表.DB2在表空间上分配表空间对应表的一切物理属性,比如首次分配大小,扩展大小,页面每页初始空闲空间,空闲页面占总页面百分比等.因此,DB2上的系统DBA对表的操作更多是基于表空间上.比如因为表上的删改查不可避免地

批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor

原文:批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPROMPT5.3对各种加密对象的解密测试 SQL2005解密已经被加密的存储过程 昨天ahdung 童鞋介绍了这个工具给我,非常感谢他 dbForge SQL Decryptor这个工具的软件公司是dev

SQLServer 数据库结构

一.数据库的组成 在SQL Server 2008中,用户如何访问及使用数据库,就需要正确了解数据库中所有对象及其设置.数据库就像一个容器,它里面除了存放着数据的表之外,还有视图.存储过程.触发器.约束等数据库对象.数据库管理的核心任务包括创建.操作和维护数据库. 二.数据库文件及其文件组 数据库的存储结构分为逻辑存储结构和物理存储结构. 逻辑存储结构:说明数据库是由哪些性质的信息所组成.SQL Server的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息都存储在数据库中. 物理存储结

SQLServer数据库自增长标识列的更新修改操作

SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的引用很大程度上方便了数据库程序的开发,但是有时这个固执的字段类型也会带来一些麻烦. 一.修改标识列字段的值:(在执行insert时,将ID手动的设置成想要的值)有时,为了实现某个功能,需要修改类型为Identity自增长类型的字段的值,但由于标识的类型所限,这种操作默认是不允许的.比如,目前数据库有

JavaWeb程序连接SQLserver数据库

声明:一直以来都以为javaweb程序连接数据库是一个很高大上很难的问题,结果今天学习了一下,不到两个小时就解决了,所以总结一篇博客. JavaWeb程序连接SQLserver数据库分为一下步骤: 1:在http://www.microsoft.com/en-us/download/details.aspx?id=21599下载sqljdbc.jar的压缩包 2:解压之后,将sqljdbc4.jar复制粘贴到你项目的WEB-INF的lib目录下 3:需要知道一些数据库方面的技术知识: 先举个例子

asp.net 连接sqlserver数据库

在asp.net中连接sqlserver数据库之前,首先得确保正常安装了sqlserver2008,同时有数据库. 在项目中添加一个类DB,用来专门负责执行对数据库的增删改查.在添加的过程中会弹出下面的一个提示 直接点是就可以了. 在这个类中,首先定义一个连接对象 private SqlConnection conn = null;然后定义下面三个函数 private void SetConnection()//初始化连接对象 { if (conn == null) { //获取配置文件中的数据

web应用下sqlserver数据库ip地址无法连接问题。

刚装了sqlserver数据库,但是在myeclipse进行数据的增删改查时出现了数据库ip地址无法连接的问题,经过查找发现了问题所在.具体解决办法是: 1.打开sqlserver的配置管理器 2.仔细观察,我发现MSSQLSERVER目录下的tcp/ip协议是被禁用状态,右击选择打开协议 3.接下来在SQL SERVERS服务下对SQL SERVERS(MSSQLSERVER)重新启动. 4.然后tcp/ip协议就启动了,并且我们能知道数据库的端口号.