SQLSERVER中触发器的触发类型有几种?
楼主,你好!
触发器的种类
有:
SQL
Server
2000
支持两种类型的触发器:AFTER
触发器和INSTEAD
OF
触发器。其中AFTER
触发器即为SQL
Server
2000
版本以前所介绍的触发器。该类型触发器要求只有执行某一操作(INSERT
UPDATE
DELETE)
之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。对于AFTER
触发器,可以定义哪一个触发器被最先触发,哪一个被最后触发,通常使用系统过程sp_settriggerorder
来完成此任务。
INSTEAD
OF
触发器表示并不执行其所定义的操作(INSERT、
UPDATE、
DELETE),而仅是执行触发器本身。既可在表上定义INSTEAD
OF
触发器,也可以在视图上定义INSTEAD
OF
触发器,但对同一操作只能定义一个INSTEAD
OF
触发器
希望能帮助到你!
SQLServer 和 Oracle 里面触发器都是一样的!只是创建触发器的语法不一样!SqlServer用的是T-SQL ,Oracle用的是PL-SQL
SQL SERVER中触发器的触发类型有三种。
1、DML触发器,当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果对该表写了对应的DML触发器,那么该触发器自动执行。
2、DDL触发器,是Sql Server2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。比如在修改表,修改列,新增表,新增列等。它在数据库结构发生变化时执行,主要用它来记录数据库的修改过程,以及限制程序员对数据库的修改。
3、登录触发器,登录触发器将为响应 LOGIN 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。
扩展资料:
DML触发器的主要作用在于强制执行业 务规则,以及扩展Sql Server约束,默认值等。因为我们知道约束只能约束同一个表中的数据,而触发器中则可以执行任意Sql命令。
来自登录触发器内部且通常将到达用户的所有消息(例如错误消息和来自 PRINT 语句的消息)会传送到 SQL Server 错误日志。如果身份验证失败,将不激发登录触发器。
触发器可在写入数据表前,强制检验或转换数据。触发器发生错误时,异动的结果会被撤销。可依照特定的情况,替换异动的指令 (INSTEAD OF)。
主要是3种拉
INSERT
UPDATE
DELETE
触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。
触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:
(1) 强化约束(Enforce restriction)
触发器能够实现比CHECK 语句更为复杂的约束。
(2) 跟踪变化Auditing changes
触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。
(3) 级联运行(Cascaded operation)。
触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。
(4) 存储过程的调用(Stored procedure invocation)。
为了响应数据库更新触,发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS( 数据库管理系统)本身之外进行操作。
由此可见,触发器可以解决高级形式的业务规则或复杂行为限制以及实现定制记录等一些方面的问题。例如,触发器能够找出某一表在数据修改前后状态发生的差异,并根据这种差异执行一定的处理。此外一个表的同一类型(INSERT、 UPDATE、 DELETE)的多个触发器能够对同一种数据操作采取多种不同的处理。
总体而言,触发器性能通常比较低。当运行触发器时,系统处理的大部分时间花费在参照其它表的这一处理上,因为这些表既不在内存中也不在数据库设备上,而删除表和插入表总是位于内存中。可见触发器所参照的其它表的位置决定了操作要花费的时间长短。
触发器的种类
SQL Server 2000 支持两种类型的触发器:AFTER 触发器和INSTEAD OF 触发器。其中AFTER 触发器即为SQL Server 2000 版本以前所介绍的触发器。该类型触发器要求只有执行某一操作(INSERT UPDATE DELETE) 之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。对于AFTER 触发器,可以定义哪一个触发器被最先触发,哪一个被最后触发,通常使用系统过程sp_settriggerorder 来完成此任务。
INSTEAD OF 触发器表示并不执行其所定义的操作(INSERT、 UPDATE、 DELETE),而仅是执行触发器本身。既可在表上定义INSTEAD OF 触发器,也可以在视图上定义INSTEAD OF 触发器,但对同一操作只能定义一个INSTEAD OF 触发器。
太专业了。我会用但是都叫不上来
建议你到网易的 教育学院去看看吧
用VS2008连接sql server数据库的时候出现了这个错误框,怎么破?_百度...
QL Server 2008基于SQL Server 2005,并提供了更可靠的加强了数据库镜像的平台。解决方案一,下载SQL Server 2008 R2 并安装,然后你就可以正常使用了 ,解决方案二:首先, 找一台装有SQL Server 2008的电脑(或者更高版本,sql2012 等等), 将你的数据库文件附加到这台电脑里.附加成功后, 在SSMS...
mdf数据库文件怎么打开?
用SQL Server管理工具可以打开mdf数据库文件,具体操作请参照以下步骤。1、首先在网上搜索【QL Server管理工具】,然后选择其中一个版本,下载好安装包。2、然后按照安装向导将SQL Server软件安装至电脑中。3、进入到软件界面后,点击“文件”下拉菜单中的“导入链接”选项。4、然后在电脑文件夹中找到需要...
以前在电脑上安装过sql server,但是安装失败。
QLServer安装挂起解决方法 以前装过sql server,后来删掉。现在重装,却出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。具体步骤是:1)添加\/删除程序中彻底删除sql server。2)将没有删除的sql server目录也删除掉。3)打开注册表...
sql 怎么都连接不上服务器
,单击里面。2、我们选择单击[QL服务器网络配置]。3、我们选择禁用[TCP \/ IP]并启用它。4、框中的几个选项的状态应为[正在运行]。5、之后跳出一个页面这是对启动过程的提醒。6、确保这些项目处于[Running]状态。7、然后单击SQL Server 2008中的连接。8、之后它可以连接到服务器。效果如下。
Thinkserver TS550 怎么安装windows server 2008 64位系统 引导盘只支...
QL Server 2008安装包是iso文件,需要用虚拟光驱软件打开,安装时务必一切都使用默认路径。安装步骤如下:第一步、运行sql安装;第二步、单击安装-全新的sql server独立安装,如果我们准备好了故障转移群集,那么我们就可以创建故障转移群集sql;第三步、常规检查;第四步、选择版本,或者输入密钥自动识别版本...
以前在电脑上安装过sql server,但是安装失败。
QLServer安装挂起解决方法 以前装过sql server,后来删掉。现在重装,却出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。具体步骤是:1)添加\/删除程序中彻底删除sql server。2)将没有删除的sql server目录也删除掉。3)打开注册表...
SQL Server数据库外键一般在什么地方用?为什么大型网站的SQL Server数...
主键和外键是在说明数据表之间的关系的时候,为了能够明确指出两个表中对应栏位的关系时需要的两个名词。也就是说,供实体关系角度来讲,具有一对多的关系,那么就存在一对主键外键。你所看到的设置好的主键和外键,一般是为了约束,理论上具有一对多关系的表应该建立约束关系,但是大部分人都是不建关系的...
win2012安装sql2000 在指定的位置不存在有效的sql server
SQL SERVER根目录被删除或是路径不对,重装SQL SERVER。QL Server 是Microsoft 公司推出的关系型数据库管理系统。是一个全面的数据库平台,关系型数据和结构化数据提供了更安全可靠的存储功能。
SQL是什么?
SQL是指Structured Query Language(结构化查询语言 ),SQL语言的主要功能就是同各种数据库建立联系,进行沟通。SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、 Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS\/2 版本。SQL网络系统没具体印象,是否就是指具体的数据库...
sql bit类型用0和1为什么错误ql server 2008 我用 bit 类型 为什么输 ...
要输入true或false ,是布尔型的
蛮该福天: 楼主,你好! 触发器的种类 有: SQL Server 2000 支持两种类型的触发器:AFTER 触发器和INSTEAD OF 触发器.其中AFTER 触发器即为SQL Server 2000 版本以前所介绍的触发器.该类型触发器要求只有执行某一操作(INSERT UPDATE ...
巴林左旗17618606079: SQL中触发器有什么作用 - ?
蛮该福天: 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update...
巴林左旗17618606079: 跪求各路大虾相救~SQL Server中的触发器分为哪两类? - ?
蛮该福天: instead of 和 after 触发器 事件之前和之后触发器
巴林左旗17618606079: 什么是SQL Server中的触发器? - ?
蛮该福天: 触发器(trigger)是个特殊的存储过程,它的执行是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行,用于加强数据的完整性约束等,比如当表中数据发生变化,可使之相关联的表中的数据进行自动的相应更新.(普通存储过程就像C语言的函数调用一样,只需输入几个数据,就会自动调用函数实现原本编写好的功能,减少编写工作重复性)
巴林左旗17618606079: sql server里面的触发器怎么写? - ?
蛮该福天: 基本语法 create trigger tri_name on table for insert/update/deleted as SQL code 例:create trigger tri_mc(tri_mc:自定义触发器的名称) on table (table:触发的表名) for insert (触发类型:insert,插入数据触发 update,更新数据触发 delete,删...
巴林左旗17618606079: sql server 2008支持哪两种类型的触发器? - ?
蛮该福天: DML触发器,具体是某个表的数据进行了新增修改删除可以定义相关触发器来控制相关行为 DDL触发器,服务器级别的触发器,可以在服务器的相关行为发生后,比如有用户登录,新增了表之类的动作做捕捉处理
巴林左旗17618606079: sql server中触发器和存储过程的概念和作用,能不能写的明白一点,易懂一点? - ?
蛮该福天: 1,触发器.其实也是一些sql语句.可以设定什么时候触发这些sql语句执行.比如,当数据库里有插入insert,update等动作的时候,让触发器的sql语句执行,这些sql语句可以插入,修改某个表.2,存储过程.也是一些sql语句集合,包含表达式,控制流程,比较接近程序语言了,比如,有if判断语句,可以声明变量,可以初始化变量,可以接受参数.
巴林左旗17618606079: sql2005中的触发器是什么,简单介绍一下. - ?
蛮该福天: 补充一下触发器的介绍 触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力.数据库触发器有以下的作用: * 安全性.可以基于数据库的值使用户具有...
巴林左旗17618606079: sql的触发器是干什么的,怎么用? - ?
蛮该福天: 触发器是用来保证数据一致性用的.他分为两种一种是操作前触发另外一种是操作后触发 ,主要是对数据的插入,删除,修改等动作进行跟踪及作出相应动作