
正文
sqlserver2008触发器,sqlserver2005触发器
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
SQL中触发器有什么作用
1、触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。
2、触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制比用 CHECK 约束定义的约束更为复杂的约束。与 CHECK 约束不同,触发器可以引用其它表中的列。
3、用触发器还可以强制执行业务规则 Microsoft SQL Server 2000 提供了两种主要机制来强制业务规则和数据完整性:约束和触发器。触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应 INSERT、UPDATE 或 DELETE 语句。
4、触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。
5、触发器英文名trigger,是指数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。为什么要使用触发器:触发器通常在进行登录或者对表作修改时触发,可以作为登录验证或者数据监控。换句话说,触发器是用来管理数据库的,很少用来操作数据。
6、触发器:SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法。
相关问答
Q1: SQL触发器的分类
1、(1)DML触发器:是指触发器在数据库中发生数据操作语言(DML)事件时将启用。DML事件即指在表或视图中修改数据的insert、update、delete语句也。(2)DDL触发器:是指当服务器或数据库中发生数据定义语言(DDL)事件时将启用。DDL事件即指在表或索引中的create、alter、drop语句也。
2、触发器的种类 SQL Server 2000 支持两种类型的触发器:AFTER 触发器和INSTEAD OF 触发器。其中AFTER 触发器即为SQL Server 2000 版本以前所介绍的触发器。该类型触发器要求只有执行某一操作(INSERT UPDATE DELETE) 之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。
3、SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create、alter、drop语句。
4、DML( 数据操纵语言 Data Manipulation Language)触发器:是指触发器在数据库中发生DML事件时将启用。DML事件即指在表或视图中修改数据的insert、update、delete语句。a、在SQL SERVER 2008中,DML触发器的实现使用两个逻辑表DELETED和INSERTED。
5、前触发器:指在执行INSERT,UPDATE,DELETE之前去触发【触发器】要执行的语句 后触发器:指在执行INSERT,UPDATE,DELETE之后再去触发【触发器】要执行的语句。比如一个update触发器,要执行删除操作。
Q2: 触发器和存储过程有什么区别吗?
1、指代不同 存储过程:是在大型数据库系统中,一组为了完成特定功能的SQL 语句集。触发器:是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法。
2、参考不同 存储过程:是大型的SQL语句集,用于在大型数据库系统中完成特定的功能。初始化:SQLServer提供给程序员和数据分析人员以确保数据初始化的一种方法。特点不同 存储过程:存储在数据库中,编译后永久有效,用户通过指定存储过程的名称并指定参数(如果存储过程具有参数)来执行。
3、我的理解:主要是使用场合不同,还有就是触发器中不能使用commit(这个应该是约定而不是规定)存储过程相当于打包好的sql语法,可以包含复杂的sql操作,在程序调用时只要执行该存储过程,一句话就可以完成复杂的数据库操作.触发器是也是打包好的sql语法,是一种特殊类型的存储过程,不由用户直接调用。
4、values(@id,@name);end;两个区别,通过语法可以看出来,触发器是在执行了一定的操作后,根据触发条件,系统自动执行某一操作;而存储过程则是根据你设定的特定操作,来进行相应的操作而已。至于什么时候用触发器,什么时候用存储过程,这个就要根据你的使用情况了。
5、触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。再介绍存储过程:存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
6、存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。;存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用;触发器是特殊的存储过程,存储过程需要程序调用,而触发器会自动执行。
Q3: 请问在sqlserver中什么是前触发型触发器,什么是后触发型触发器,怎么...
1、SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create、alter、drop语句。
2、语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。【分析】简单而言,事前触发主要是验证一些条件或进行一些准备工作,在表保存之前就触发,而事后触发则是进行收尾工作,保证事务的完整性,在表经过修改以后才触发。
3、创建触发器 是特殊的存储过程,自动执行,一般不要有返回值。后触发器 (AFTER,FOR)先执行对应语句,后执行触发器中的语句。前触发器 并没有真正的执行触发语句(insert,update,delete),而是执行触发后的语句。行级触发器 (FOR EACH ROW) 在SQL server 中不存在。
4、触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。
5、触发器的种类 有:SQL Server 2000 支持两种类型的触发器:AFTER 触发器和INSTEAD OF 触发器。其中AFTER 触发器即为SQL Server 2000 版本以前所介绍的触发器。该类型触发器要求只有执行某一操作(INSERT UPDATE DELETE) 之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。
6、触发器。 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。
Q4: Sql触发器
SQL SERVER中触发器的触发类型有三种。DML触发器,当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果对该表写了对应的DML触发器,那么该触发器自动执行。DDL触发器,是Sql Server2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。
是在其上执行触发器的表或视图,有时称为触发器表或触发器视图。可以选择是否指定表或视图的所有者名称。WITH ENCRYPTION加密syscomments 表中包含 CREATE TRIGGER 语句文本的条目。使用 WITH ENCRYPTION 可防止将触发器作为 SQL Server 复制的一部分发布。
SQL Server 2000 支持两种类型的触发器:AFTER 触发器和INSTEAD OF 触发器。其中AFTER 触发器即为SQL Server 2000 版本以前所介绍的触发器。该类型触发器要求只有执行某一操作(INSERT UPDATE DELETE) 之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。
\x0d\x0a\x0d\x0aSQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create、alter、drop语句。
(1)DML触发器:是指触发器在数据库中发生数据操作语言(DML)事件时将启用。DML事件即指在表或视图中修改数据的insert、update、delete语句也。(2)DDL触发器:是指当服务器或数据库中发生数据定义语言(DDL)事件时将启用。DDL事件即指在表或索引中的create、alter、drop语句也。
触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应 INSERT、UPDATE 或 DELETE 语句。触发器可以查询其它表,并可以包含复杂的 Transact-SQL 语句。将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。
Q5: sqlserver2008触发器执行过程中,原表数据又发生变化时,会不会丢失触发...
1、如果是修改原有数据列的数据类型,则可能会造成数据溢出或数据丢失,但一般sql会阻止这类操作,强制执行的话会出现数据丢失 如果是新添加列不会对原数据有影响。
2、你可以通过inserted表来获得你更新后的值,然后再用这个值来更新另外的那个表,如不清楚可再追问。
3、新增加的字段内容为空或者你设置的默认值。将有数据的字段加长,不会有任何影响。原数据保留。将有数据的字段删除,会造成该字段数据丢失。将有数据的字段长度减少,可能会造成该字段数据丢失,也可能不会,跟据实际存储内容的长度决定。修改原字段的数据类型,不确定的结果,一般不要这样操作。
4、不是这样的,备份后的结果并不是开始备份的时间点,而是备份期间最后一个检查点(CheckPoint)的数据,对这个检查点前边已经提交的事务结果也一并备份了。在还原的时候,会根据日志对这个检查点到备份结束时间点之间,还会再做一次前滚和后滚的操作。
关于sqlserver2008触发器和sqlserver2005触发器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






