|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一些典型的RDBMS功能并不总是在DBaaS系统中可用。例如MySQL学习教程,WindowsAzureSQLDatabase(以前的SQLAzure)是微软的DBaaS产品,提供了一个类似于SQLServer的数据库平台。在下面几节我们先容了一样平常意义的存储历程,即用户自界说的存储历程和体系存储历程。本节将先容一种特别的存储历程,即触发器。在余下各节中我们将对触发器的观点、感化和对其的利用办法作细致先容,使读者懂得怎样界说触发器,创立和利用各类分歧庞大水平的触发器。
12.5.1触发器的观点及感化
触发器是一种特别范例的存储历程,它分歧于我们后面先容过的存储历程。触发器次要是经由过程事务举行触发而被实行的,而存储历程能够经由过程存储历程名字而被间接挪用。当对某一表举行诸如UPDATE、INSERT、DELETE这些操纵时,SQLServer就会主动实行触发器所界说的SQL语句,从而确保对数据的处置必需切合由这些SQL语句所界说的划定规矩。
触发器的次要感化就是其可以完成由主键和外键所不克不及包管的庞大的参照完全性和数据的分歧性。除此以外,触发器另有别的很多分歧的功效:
(1)强化束缚(Enforcerestriction)
触发器可以完成比CHECK语句更加庞大的束缚。(2)跟踪变更Auditingchanges
触发器能够侦测数据库内的操纵,从而不同意数据库中未经允许的指定更新和变更。
(3)级联运转(Cascadedoperation)。
触发器能够侦测数据库内的操纵,并主动地级联影响全部数据库的各项内容。比方,某个表上的触发器中包括有对别的一个表的数据操纵(如删除,更新,拔出)而该操纵又招致该表上触发器被触发。(4)存储历程的挪用(Storedprocedureinvocation)。
为了呼应数据库更新触,发器能够挪用一个或多个存储历程,乃至能够经由过程内部历程的挪用而在DBMS(数据库办理体系)自己以外举行操纵。
因而可知,触发器能够办理初级情势的营业划定规矩或庞大举动限定和完成定制纪录等一些方面的成绩。比方,触发器可以找出某一表在数据修正前后形态产生的差别,并依据这类差别实行必定的处置。别的一个表的统一范例(INSERT、UPDATE、DELETE)的多个触发器可以对统一种数据操纵接纳多种分歧的处置。
整体而言,触发器功能一般对照低。当运转触发器时,体系处置的年夜部分工夫消费在参照别的表的这一处置上,由于这些表既不在内存中也不在数据库设备上,而删除表和拔出表老是位于内存中。可见触发器所参照的别的表的地位决意了操纵要消费的工夫是非。
12.5.2触发器的品种
SQLServer2000撑持两品种型的触发器:AFTER触发器和INSTEADOF触发器。个中AFTER触发器即为SQLServer2000版本之前所先容的触发器。该范例触发器请求只要实行某一操纵(INSERTUPDATEDELETE)以后,触发器才被触发,且只能在表上界说。能够为针对表的统一操纵界说多个触发器。关于AFTER触发器,能够界说哪个触发器被开始触发,哪个被最初触发,一般利用体系历程sp_settriggerorder来完成此义务。
INSTEADOF触发器暗示其实不实行其所界说的操纵(INSERT、UPDATE、DELETE),而仅是实行触发器自己。既可在表上界说INSTEADOF触发器,也能够在视图上界说INSTEADOF触发器,但对统一操纵只能界说一个INSTEADOF触发器。
通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。 |
|