




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章,存储过程与触发器,存储过程与触发器是数据库中的一个重要组成部,分,存储过程可以把数据库的复杂操作封装为独立的,程序模块,便于程序的维护和减少网络通讯流量。而,触发器是可以自动调用执行的程序模块,可以实现比,较复杂的约束功能,本章主要介绍了存储过程与触发,器的概念,以及如何创建、使用和管理存储过程与触,发器,8.1,存储过程,8.1.1,存储过程概述,存储过程,Stored Procedure,是一组预先编译好的,T-SQL,代码。存,储过程可以作为一个独立的数据库对象,也可以作为一个单元被用户,的应用程序调用。存储过程经过了一次创建后,可以被多次调用。由,于是已经编译好的代码,所以在执
2、行的时候不必再次进行编译,从而,提高了程序的运行效率。使用存储过程具有以下优点,存储过程只在创建时进行编译,以后每次执行存储过程都不需再,重新编译,而一般,SQL,语句每执行一次就编译一次,所以使用存储过程,可提高数据库执行速度,当对数据库进行复杂操作时,如对多个表进行,Update,Insert,Query,Delete,时),可将此复杂操作用存储过程封装,起来与数据库提供的事务处理结合一起使用,8.1,存储过程,存储过程可以重复使用,可减少数据库开发人员的工作量,使用存储过程可以完成所有数据库操作,并可通过编程方式控,制对数据库信息访问的权限以提高安全性,8.1.2,存储过程的类型,SQL
3、 Server,支持的存储过程可分为,5,类:在不同情况下需要,执行不同的存储过程,系统存储过程,本地存储过程,临时存储过程,远程存储过程,扩展存储过程,8.1,存储过程,1,系统存储过程,系统存储过程是由系统提供的存储过程,可以作为命令执行各种操作,系统存储过程定义在系统数据库,master,中,其前缀是,sp_,它们为检索系,统表的信息提供了方便快捷的方法。系统存储过程允许系统管理员执行,修改系统表的数据库管理任务,可以在任何一个数据库中执行,2,本地存储过程,本地存储过程是指在用户数据库中创建的存储过程,这种存储过程完,成用户指定的数据库操作,其名称不能以,sp_,为前缀,3,临时存储过
4、程,临时存储过程属于本地存储过程。如果本地存储过程的名称前面有一,个,该存储过程就称为局部临时存储过程,这种存储过程只能在一个,用户会话中使用,8.1,存储过程,如果本地存储过程的名称前有两个,该过程就是全局临时,存储过程,这种存储过程可以在所有用户会话中使用,4,远程存储过程,远程存储过程指从远程服务器上调用的存储过程,5,扩展存储过程,在,SQL Server,环境之外执行的动态链接库称为扩展存储过程,其前缀是,sp_,使用时需要先加载到,SQL Server,系统中,并且按,照使用存储过程的方法执行,8.1,存储过程,8.1.3,存储过程的创建,用户存储过程只能定义在当前数据库中,可以使
5、用,SQL Server,的,企业管理器或,Transact-SQL,语句创建存储过程。默认情况下,用户,创建的存储过程归数据库所有者拥有,数据库的所有者可以把许可,授权给其他用户,1,使用企业管理器创建存储过程,1,启动企业管理器,登录到要使用的服务器,2,在企业管理器的左窗格中,展开要创建存储过程的数据库文,件夹,单击“存储过程”文件夹,此时在右窗格中显示该数据库的,所有存储过程,3,右击“存储过程”文件夹,在弹出的快捷菜单中选择“新建,存储过程”,此时打开如图,8-1,所示的“新建存储过程”对话框,8.1,存储过程,新建存储过程如图,8.1,存储过程,4,在“文本”编辑框中输入存储过程的
6、正文内容,5,单击“检查语法”按钮,检查语法是否正确,6,单击“确定”按钮保存,7,在右窗格中,右击该存储过程,在弹出菜单中选择“所有任,务”,选择“管理权限”设置权限,8.1,存储过程,2,使用,Transact-SQL,语句创建存储过程,CREATE PROCEDURE,的语法形式如下,CREATE PROC procedure_name;number,parameter data_type,VARYING=defaultOUTPUT,n,WITH,RECOMPILE | ENCRYPTION|RECOMPILE,FOR REPLICATION,AS sql_statements,8.1,
7、存储过程,其中,procedure_name,用于定义存储过程名,必须符合标识符规则,且,对于数据库及其所有者必须惟一,创建局部临时过程,可以在,procedure name,前面加一个,创建全局临时过程,可以在,procedure,name,前加,Number,为可选的整数,用于区分同名的存储过程,以便用一条,DROP Procedure,语句删除一组存储过程,parameter,存储过程的形参,形参局部于该存储过程,参数名必,须符合标识符规则,并且首字符必须为,可定义一个或多个形参,执,行存储过程时应提供相应的实在参数,除非定义了该参数的默认值,8.1,存储过程,Data_type,用于指
8、定形参数据类型,形参类型可为,SQL Server,支持的任何类型,但,cursor,类型只能用于,OUTPUT,参数,如果指定形,参类型为,cursor,必须同时指定,VARYING,和,OUTPUT,关键字,default,指定存储过程输入参数的默认值,默认值必须是常量或,NULL,默认,值中可以包含通配符,_,和,如果定义了默认值,执行,存储过程时根据情况可不提供实参,OUTPUT,用于指定参数从存储过程返回信息。如果一个输出参数,的类型为游标,并且结果集会动态变化,则使用关键字,VARYING,指,明输出参数的内容可以变化,n,表示可为存储过程指定若干个参数,RECOMPILE,指明,
9、SQL Server,每次运行该过程时,将对其重新编,译,8.1,存储过程,ENCRYPTION,表示,SQL Server,加密,syscomments,表中包含,CREATE,PROCEDURE,语句文本的条目;使用,ENCRYPTION,可防止将过程作为,SQL Server,复制的一部分发布,防止用户使用系统存储过程读取,存储过程的定义文本,FOR REPLICATION,用于说明不能在订阅服务器上执行为复制创建,的存储过程,该选项不能和,WITH RECOMPILE,一起使用,sql_statements,存储过程体包含的,T-SQL,语句序列,8.1,存储过程,对于用户自定义存储过
10、程要注意如下几点,用户定义的存储过程只能在当前数据库中创建,临时过程除外,临时过,程总是在,tempdb,中创建,成功执行,CREATE PROCEDURE,语句后,过程名存储在,sysobjects,系统表,中,而,CREATE PROCEDURE,语句的文本存储在,syscomments,表中,自动执行存储过程,SQL Server,启动时可以自动执行一个或多个存储,过程。这些存储过程必须由系统管理员在,master,数据库中创建,并在,sysadmin,固定服务器角色下作为后台过程执行。这些过程不能有任何输入,参数,sql_statements,的限制。除了,SET SHOWPLAN_T
11、EXT,和,SET SHOWPLAN_,ALL,以外,其它,SET,语句均可以在存储过程语句序列中使用,存储过程的定义不能跨越批处理,8.1,存储过程,例,8-1,创建一个简单的存储过程,实现检索学生的姓名、课程名,和相应的成绩,USE student_ms,IF EXISTS(SELECT name FROM sysobjects,WHERE name=suc_query AND TYPE=P,DROP PROCEDURE suc_query,GO,CREATE PROCEDURE suc_query,AS,SELECT,姓名,课程名称,成绩,FROM student,course,scor
12、e,WHERE student,学号,score,学号,AND course,课程号,score,课程号,ORDER BY student,学号,GO,8.1,存储过程,例,8-2,创建一个具有返回参数的存储过程,实现按给定学号查询学生,的姓名和平均成绩,USE student_ms,IF EXISTS(SELECT name FROM sysobjects,WHERE name=sco_avg_query AND TYPE=P,DROP PROCEDURE sco_avg_query,GO,CREATE PROCEDURE sco_avg_query,s_snum char(8,s_name
13、 char(10) OUTPUT,sco_avg float OUTPUT,AS,SELECT s_name,姓名,sco_avg=AVG,成绩,FROM student,course,score,WHERE student,学号,score,学号,AND course,课程号,score,课程号,GROUP BY student,姓名,GO,8.1,存储过程,例,8-3,创建一个存储过程,insert_pro,该存储过程包含两个默认参数,其值分别为:“男”和“党员,在创建该存储过程前,先建立一个简单的空表,stu,分别有姓名、性别、政,治面貌三个字段,其中没有关键字并且允许空值,USE st
14、udent_ms,IF EXISTS(SELECT name FROM sysobjects,WHERE name=insert_pro AND TYPE=P,DROP PROCEDURE insert_pro,GO,CREATE PROCEDURE insert_pro,char1 char(2),男,char2 char(10),党员,AS INSERT INTO stu,性别,政治面貌,VALUES(char1,char2,GO,8.1,存储过程,8.1.3,执行存储过程,通过,EXEC,命令可以执行一个已定义的存储过程,其语法格式为,EXEC return_status,procedu
15、re_name ,mumber | procedure_name_var,parameter= value | variable OUTPUT DEFAULT,nWITH RECOMPILE,其中,8.1,存储过程,return_ status,是一个可选的整型变量,保存存储过程的返,回状态,EXEC,语句在使用该变量前,必须对其进行定义,procedure_name,拟调用的存储过程名称,procedure_name_var,局部定义变量名,代表存储过程名称,number,用于指明组中的存储过程,parameter,过程参数,在,CREATE PROCEDURE,语句中定义,Value,是存
16、储过程中的实际参数,variable,是用来保存,OUTPUT,参数返回值,OUTPUT,指定存储过程必须返回一个参数,8.1,存储过程,DEFAULT,根据过程的定义,提供参数的默认值,n,表示可以指定一个或者多个,parameter,value,或,variable,WITH RECOMPILE,指明强制编译存储过程,例,8-4,执行例,8-1,中定义的存储过程,查询所有学生的成绩,在查询分析器中执行下列语句,USE student_ms,GO,EXEC suc_query,GO,8.1,存储过程,例,8-5,执行例,8-2,中定义的存储过程,查询部分学生的成绩,在查询分析器中执行下列语句
17、,USE student_ms,DECLARE s_name char(10),sco_avg numeric(5,2,EXEC sco_avg_query 010202,s_name OUTPUT,sco_avg OUTPUT,SELECT,学生姓名,s_name,平均成绩,sco_avg,GOGO,ALTER TABLE student,ADD,身份证号码,19) NULL,G0,8.1,存储过程,执行存储过程查询部分学生的成绩,8.1,存储过程,例,8-6,执行例,8-3,中定义的存储过程,向表,stu,中插入三行数据,在查询分析器中执行下列语句,USE student_ms,EXEC
18、insert_pro,EXEC insert_pro,女,EXEC insert_pro,女,团员,执行结果如图所示,8.1,存储过程,8.1,4,存储过程的查看,创建存储过程之后,它的名字就存储在系统表,sysobjects,中,它,的源代码存放在系统表,syscomments,中。可以使用企业管理器或系统,存储过程查看用户创建的存储过程,1,在企业管理器中查看用户创建的存储过程,1,在企业管理器的左窗格中,展开要创建存储过程的数据库文,件夹,单击“存储过程”文件夹,此时在右窗格中显示该数据库的,所有存储过程。如图所示,8.1,存储过程,查看存储过程如图,8.1,存储过程,2,右击要查看的存
19、储过程,这里右击存储过程,sco_avg_query,从弹出,的快捷菜单中选择“属性”选项,弹出“存储过程属性”对话框。在此对,话框中能够看到存储过程的源代码,如图所示,8.1,存储过程,3,如果从弹出的快捷菜单中依次选择“所有任务”、“显示相关性”选,项,会弹出“相关性”对话框,显示与选择的存储过程有依赖关系的其他数,据库对象的名称,如图所示,8.1,存储过程,2,可以使用,sp_helptext,系统存储过程查看存,储过程的定义信息。其语法格式为,sp_helptext procedure_name,例,8-7,查看数据库,student_ms,中存储过程,sco_avg_query,的定
20、义,在存储器中执行下列语句,USE student_ms,GO,sp_helptext sco_avg_query,8.1,存储过程,存储过程的定义信息如图,8.1,存储过程,8.1.5,存储过程的修改、删除,可以在企业管理器中修改、删除用户自定义的存储过程,也可,以通过,Transact-SQL,语句修改、删除存储过程,1,在企业管理器中修改存储过程,打开“存储过程属性”对话框,在中间的文本编辑框中直接修改,存储过程的定义;定义修改后,可以通过“检查语法”按钮对新定,义的存储过程内容进行语法检查;并可以通过“权限”按钮,打开,对象属性”对话框,在其中勾选该存储过程的使用者,完成对存储,过程的
21、权限进行设置。修改设置完成后,单击“确定”按钮即可,8.1,存储过程,2,使用,ALTER PROCEDURE,命令可以修改已存在的存储过,程。其语法形式为,ALTER PROCEDURE procedure_name;number,parameter data_type,VARYING=defaultOUTPUT,n,WITH,RECOMPILE | ENCRYPTION|RECOMPILE,FOR REPLICATION,AS sql_statements,其中各个参数含义同,CREATE PROCEDURE,语句,8.1,存储过程,修改存储过程时,应注意以下几点,如果在,CREATE P
22、ROCEDURE,语句中使用过参数,那么在,ALTER,PROCEDURE,语句中也应该使用这些参数,每次只能修改一个存储过程,存储过程的创建者,dbwe owner,和,db_ ddladmin,的成员拥有执行,ALTER PROCEDURE,语句的许可,其他用户不能使用,用,ALTER PROCEDURE,更改的存储过程的权限和启动属性保持不变,8.1,存储过程,3,使用企业管理器删除存储过程,使用企业管理器删除一个或多个存储过程,先将它们选取,然,后右击其中一个被选取的存储过程,并从快捷菜单中选取“删除,命令,接着再单击“除去对象”对话框中的“全部除去”按钮,4,使用,DROP PROC
23、EDURE,语句删除存储过程,删除存储过程使用,DROP,命令,DROP,命令可将一个或多个存储过,程或者存储过程组从当前数据库中删除。具体语法如下,DROP PROC procedure_name,n,其中各参数的意义与修改存储过程命令中参数的意义相同,8.1,存储过程,例,8-8,将存储过程,sco_avg_query,从数据库中删除,DROP sco_avg_query,注意,如果存储过程分组,则将无法删除组内的单个存储过程。要删,除一个存储过程将会删除同一组内的所有存储过程,如果用一个存储过程调用某个已被删除的存储过程,则,SQL,Server,会在执行该过程调用时显示一条错误信息。而
24、如果定义了一,个与已被删除的存储过程同名的并且具有相同参数的新的存储过程,那么调用该过程的其它过程仍然能够顺利执行,8.2,触发器,8.2.1,触发器概述,1,触发器的概念,触发器是一种在基表被修改时能自动执行的内嵌存储过程过程,它主要是通过事件进行触发而被执行的过程,这有区别于普通的,存储过程通过存储过程名被直接调用。也就是当一个特定的动作,发生在一个特定的表上时,某个触发器被激活,从而确保对数据,的处理必须符合由触发器中,SQL,语句所定义的规则,每个触发器通常有三个通用的部分:名称、动作和执行。触发,器的动作可以是,INSERT,UPDATE,或,DELETE,语句,触发器的执行,部分通
25、常含有一个存储过程或批处理,不允许使用参数,也不能,被直接调用,只能由系统自动激活。触发器可以查询其他表,而,且可以包含复杂的,SQL,语句。它们主要用于控制复杂的业务规则或,要求,8.2,触发器,2,触发器的优点,与其他约束相比较,触发器具有以下几个优点,1,强制比,CHECK,约束更复杂的数据完整性,在数据库中要实现数据完整性的约束,可以使用,CHECK,约束或触发器,来实现。但是在,CHECK,约束中不允许引用其他表中的列来完成检查工作,而触发器则可以引用其他表中的列来完成数据完整性的约束检查,2,使用自定义的错误信息,用户有时需要在数据完整性遭到破坏或其他情况下,发出预先自定,义好的错
26、误信息或动态自定义的错误信息。通过使用触发器,用户可,以捕获破坏数据完整性的操作,并返回自定义的错误信息,8.2,触发器,3,实现数据库中多张表的级联修改,用户可以通过触发器对数据库中的相关表进行级联修改,4,比较数据库修改前后数据的状态,触发器具有访问由,INSERT,UPDATE,或,DELETE,语句引起的数据,变化前后,表状态之间的差别的能力。因此用户就可以在触发,器中引用由于修改所影响的记录行,5,维护非规范化数据,用户可以使用触发器来保证非规范数据库中的低级数据的完,整性。维护非规范化数据与表的级联是不同的。表的级联指的,是不同表之间的主外键关系,维护表的级联可以通过设置表的,主键
27、与外键的关系来实现。而非规范数据通常是指在表中的派,生的、冗余的数据值,维护,非规范化数据应该通过使用触,发器来实现,8.2,触发器,3,触发器类型,SQL Server 2000,支持两种类型的触发器,AFTER,触发器和,INSTEAD OF,触发器,AFTER,触发器要求只有执行了某些操作,INSERT,UPDATE,DELETE,之后,触发器才被触发,且只能在表上定义,可以为针对,表的同一操作定义多个触发器,也可定义哪个触发器先被触发,哪,个后被触发,通常使用系统存储过程,sp_set triggerorder,来完成,此任务,INSTEAD OF,触发器并不执行其所定义的操作,而仅执
28、行触发器,本身。该触发器既可在表上定义,也可在视图上定义,但对同一操,作只能定义一个,INSTEAD OF,触发器,8.2,触发器,8.2.2,触发器的创建,在,SQL Server,中,可以通过企业管理器或者使用,Transact-SQL,语句创建触发器。在创建触发器之前应该注意以下几个问题,CREATE TRIGGER,语句必须是批处理中的第一个语句。将该批处,理中随后的其他所有语句解释为,CREATE TRIGGER,语句定义的一部分,当创建一个触发器时,必须指定触发器的名字,在哪一个表上,定义触发器,激活触发器的修改语句,如,INSERT,DELETE,UPDATE,当然两个或三个不同
29、的修改语句也可以都触发同一个触发器,如,INSERT,和,UPDATE,语句都能激活同一个触发器,触发器作为数据库对象,其名称必须遵循标识符的命名规则,创建触发器的权限默认分配给表的所有者,且不能将该权限转,给其他用户,8.2,触发器,虽然触发器可以引用当前数据库以外的对象,但只能在当前,数据库中创建触发器,不能在临时表或系统表上创建触发器,但是触发器可以引用,临时表。不应引用系统表,而应使用信息架构视图,在含有用,DELETE,或,UPDATE,操作定义的外键的表中,不能定义,INSTEAD OF,和,INSTEAD OF UPDATE,触发器,虽然,TRUNCATE TABLE,语句类似于
30、没有,WHERE,子句的,DELETE,语,句,但它并不会引发,DELETE,触发器,因为,TRUNCATE TABLE,语句,没有记录,8.2,触发器,1,使用企业管理器创建触发器,1,启动企业管理器,登录到要使用的服务器,2,在企业管理器的左窗格中,展开要创建触发器的数据库文,件夹,单击“表”文件夹,此时在右窗格中显示该数据库的所有,表,3,在右窗格中,右击要创建触发器的数据表,在弹出的快捷,菜单中,选择“所有任务”“管理触发器”,打开“触发器属,性”对话框,4,在“名称”下拉框中选择“新建”,在“文本”编辑框中,输入触发器的文本语句,5,单击“检查语法”按钮,检查语句是否正确,6,单击“
31、应用”按钮,在“名称”下拉列框中会有新创建的,触发器名字,7,单击“确定”按钮,关闭窗口创建成功,8.2,触发器,2,使用,Transact-SQL,语句创建触发器,使用,Transact-SQL,语言中的,CREATE TRIGGER,语句也可以创建触发器,其中需要指定定义触发器的,基表、触发器执行的事件和触发器的所有指令。创建触发器的过程类似于创建存储过程,其语法格式,如下,CREATE TRIGGER trigger_name,ONtable | view,WITH ENCRYPTION,FOR | AFTER | INSTEAD OF INSERT,UPDATE,DELETE,WITH
32、 APPEND,NOT FOR REPLICATION,AS,IF UPDATE(column,AND|ORUPDATE(column,n,IF( COLUNNS_UPDATED()bitwise_operatorupdated_bitmask,comparison_operatorcolumn_bitmask.n,sql_statement.n,8.2,触发器,例,8-9,在,student_ms,数据库中,创建一个,AFTER,触发器,要求实,现以下功能,在,score,表上创建一个插入、更新类型的触发器,score_Check,当在成绩字段中插入或修改考试分数后,触发该触,发器,检查分数
33、是否在,0,100,之间,在查询分析器中执行下列语句,USE student_ms,GO,IF EXISTS(SELECT name FROM sysobjects,WHERE name=scoreCheckAND type=TR,DROP TRIGGER score_Check,GO,8.2,触发器,CREATE TRIGGER score_Check,ON score,FOR INSERT, UPDATE,AS,IF UPDATE,成绩,PRINT AFTER,触发器开始执行,BEGIN,DECLARE ScoreValue real,SELECT ScoreValue=(SELECT,成
34、绩,FROM inserted,IF ScoreValue100 OR ScoreValue0,PRINT,输入的分数有误,请确认输入的考试分数,END,GO,8.2,触发器,在上述的,score_Check,触发器创建过程中,使用了,inserted,表,实际上,这个表是在触发器被执行时,系统自,动创建的。如果触发一个,DELETE,触发器时,系统同样会创建,一个,deleted,表。下面介绍两个表的内容,inserted,逻辑表:用于保存基本表中被,INSERT,和,UPDATE,语句影响的数据行,当向表中插入数据时,INSERT,触发器触,发执行,新的记录插入到,inserted,表中,
35、deleted,逻辑表:用于保存已从基本表中删除的记录,当触发,一个,DELETE,触发器时,被删除的记录存放到,deleted,逻辑表中,8.2,触发器,当修改一条记录时,相当于插入一新记录,同时删除旧记录,当对定义了,UPDATE,触发器的基本表记录进行修改时,表中原记录,移到,deleted,表中,修改过的记录插入到,inserted,表中,deleted,inserted,两个逻辑表的查询方法与数据库表的查询,方法相同。例如要检索,deleted, inserted,表中的所有记录,可使,用如下语句,SELECT * FROM deleted,SELECT * FROM inserte
36、d,一般来说,基本表中不会存在和,deleted,inserted,中具有,完全相同内容的数据行,8.2,触发器,8.2.3,触发器的使用,在创建好触发器以后,可以通过执行相应的,SQL,语句来使用触发器,例,8-10,在,score,表中分别插入和更新数据,查看触发器执行效果,并通过比较不同的结果,了解触发器的执行过程,在查询分析器中执行下列语句,USE student_ms,GO,PRINT,在,score,中插入记录时触发器执行结果,INSERT INTO score,VALUES(010209,01003,127,GO,8.2,触发器,PRINT,在,score,中修改记录时触发器执行
37、结果,UPDATE score,SET,成绩,107,WHERE,学号,010532 AND,课程号,02003,GO,PRINT,插入符合要求的数据,INSERT INTO score,VALUES(010209,01003,87,GO,执行结果如图所示,8.2,触发器,触发器执行结果如图,8.2,触发器,8.2.4,查看触发器信息,像存储过程一样,触发器在创建后,其名称保存在系统表,sysobjects,中,并把创建的源代码保存在系统表,syscomments,中。如果要知道作用于表上的触发器是对哪个表在起作用,又,作了哪些操作,必须通过查看触发器信息才可以知道,SQL,Server,为用
38、户提供多种查看触发器信息的方法,1,使用企业管理器查看触发器定义信息,1,打开“企业管理器”,展开数据库,右击需要查看的,表,2,在弹出的菜单中选择“所有任务” “管理触发,器,SQL Server,将弹出“触发器属性”对话框,3,在“触发器属性”对话框中,通过“名称”下拉框,用户可以选择要查看的触发器名称,在下面的文本框中查看该,触发器的定义语句,8.2,触发器,使用企业管理器查看与触发器有依赖关系的其他数,据库对象,1,打开“企业管理器”,展开数据库,在右边的窗格中,右击,需要查看的表,在弹出的菜单中选择“所有任务” “显示相关性,SQL,Server,将弹出“相关性”对话框,3,在“相关
39、性”对话框中,通过“对象”下拉框,用户可以选,择要查看的触发器名称,左边的页框中会显示依赖于该对象的其他,对象,右边的页框中会显示该对象所依赖的其他对象,8.2,触发器,3,使用系统存储过程查看触发器,系统存储过程,sp_help,sp_helptext,和,sp_depends,分别,提供有关触发器的不同信息,通过,sp_help,系统存储过程,可以了解触发器的一般信息,名字、属性、类型、创建时间等,通过,sp_helptext,能够查看触发器的定义信息,通过,sp_depends,能够查看指定触发器所引用的表或指定,的表涉及的所有触发器,8.2,触发器,注意,用户必须在当前数据库中查看触发
40、器的信息,而且被,查看的触发器必须已经被创建。和存储过程的加密类似,用户也可,以在创建触发器时,通过指定,WITH ENCRYPTION,来对触发器的定义,文本信息进行加密,加密后的触发器无法用,sp_helptext,来查看相,关信息,用户还可以通过使用系统存储过程,sp_helptrigger,来查看某张,特定表上存在的触发器的某些相关信息。具体命令的语法如下,EXEC sp_helptrigger table_name,8.2,触发器,例,8-13,使用系统存储过程,sp_helptrigger,查看表,student,上存,在的所有触发器的相关信息,在“查询分析器”的查询窗口中执行下面的语句,USE student_ms,GO,EXEC sp_helptrigger student,GO,8.2,触发器,8.2.5,修改触发器,通过系统存储过程、企业管理器或,Transact-SQL,语句,可以,修改触发器的名字和正文,1,使用,sp_rename,系统存储过程修改触发器的名字,其语法格式为,sp_rena
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 检验专业考研试题及答案
- 环保专业笔试题及答案
- 江苏省无锡市2025-2026学年八年级上学期10月月考模拟练习数学试卷(含答案)
- 湖南省永州市冷水滩区普利桥镇小学2025-2026学年四年级数学上册一二单元月考试卷人教版A3
- 海南省文昌市2024-2025学年八年级上学期期中考试数学试卷(含答案)
- 居配小区施工方案
- 2024-2025学年河南省洛阳市洛宁县人教版四年级下册期末学情调研数学试卷(含答案)
- 节前校园安全教育
- 灌缝胶施工方案
- 毕业论文建筑方案设计
- (青岛2024版)科学二年级上册2.6 春夏秋冬 课件(新教材)
- 2025-2026学年浙美版(2024)小学美术二年级上册(全册)教学设计(附目录P168)
- 2025年时政热点考试模拟题库目及解析答案
- DB63-T 1921-2021 交通运输专业空间数据分类与编码规范
- 2025年部编版八年级道德与法治上册全册教案
- 2025年移动式压力容器充装R2作业证考试练习题库含答案
- 北师大版(2024版)三年级上册第七单元第6节《生活中的小数》教学设计
- 2025年中国银行招聘考试试题及答案
- 土石方工程的合作协议书
- (完整版)铝合金门窗施工方案
- 医疗质量安全专项整治行动自查清单8-患者隐私
评论
0/150
提交评论