欢迎来到天天文库
浏览记录
ID:51965568
大小:361.50 KB
页数:14页
时间:2020-03-26
《SQLServer2005数据库技术及应用赵俊荣全套配套课件 第14章 存储过程和触发器.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第14章存储过程和触发器第14章存储过程和触发器14.1存储过程的基本概念14.2用户存储过程的创建与执行14.3用户存储过程的修改14.4用户存储过程的删除14.5触发器14.5.1利用SQL命令创建触发器14.5.2触发器的修改14.5.3触发器的删除14.1存储过程的基本概念存储过程是一组为了完成特定功能的T-SQL语句集合,有些类似上一章提到的用户自定义函数,所不同的是存储过程的语句存储在SQLServer服务器端数据库中,而不是存储在客户计算机上,并且在使用前经过了编译处理设计存储过程的主要目的是提
2、高数据检索速度,而且存储过程具有传递参数和执行逻辑表达式的功能,使用它有助于在SQLServer中处理比较复杂的任务存储过程分类系统存储过程是SQLServer安装好后系统自动提供的存储过程,可以作为命令执行各种操作用户自定义存储过程是指用户在数据库中自己创建的存储过程扩展存储过程在SQLServer环境之外通过对动态链接库(DLL)的调用执行的存储过程被称为扩展存储过程14.2用户存储过程的创建与执行创建存储过程的语法格式:CREATEPROC[EDURE][owner.]procedure_name[{@
3、parameterdata_type}[=default][OUTPUT]][,…n1][WITH{RECOMPILE
4、ENCRYPTION
5、RECOMPILE,ENCRYPTION}]ASsql_statement[…n2]14.2用户存储过程的创建与执行执行存储过程的语法格式:[EXEC[UTE]]{[@return_status=]{procedure_name
6、@procedure_name_var}[[@parameter=]{value
7、@variable[OUTPUT]
8、[DEFAULT]}[,
9、…n][WITHRECOMPILE]}14.3用户存储过程的修改语法格式:ALTERPROC[EDURE]procedure_name[{@parameterdata_type}[VARYING][=default][OUTPUT]][,…n1][WITH{RECOMPILE
10、ENCRYPTION
11、RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[…n2]14.4用户存储过程的删除当不再使用一个存储过程时,就要把它从数据库中删除。使用DROPPROCE
12、DURE语句可永久地删除存储过程。语法格式:DROPPROCEDURE{procedure}[,…n]14.5触发器触发器可以看作一类特殊的存储过程,与一般存储过程不同的就是它不是由用户直接调用执行的,而是事先设好触发条件,满足条件时触发器就会自动执行。触发器的主要作用是保护表中的数据,当对表的操作影响到触发器保护的数据时,触发器自动执行。一般情况下,对表数据的操作有:插入、修改、删除,因而维护数据的触发器也可分为三种类型:INSERT,UPDATE和DELETE。使用触发器的主要目的是实现比较复杂的数据完整
13、性14.5.1利用SQL命令创建触发器一般语法格式:CREATETRIGGERtrigger_nameON{table
14、view}[WITHENCRYPTION]FOR{INSERT][,][DELETE][,][UPDATE]}ASsql_statement[…n]触发器中使用的特殊表执行触发器时,SQLServer统会自动创建两个特殊的表:inserted表和deleted表,它们是临时的逻辑表,由系统维护,不允许用户直接对它们进行修改。这两个临时逻辑表存放在计算机内存中而不是数据库里,所以触发器工作完成
15、后即被删除触发器中使用的特殊表inserted逻辑表:当用户向表中插入数据时,INSERT触发器触发自动执行,新记录不仅插入到要求的实际表中,而且还同样插入到inserted表中,也就是说实际上新数据在内存中还有一个副本。deleted逻辑表:用于保存已从表中删除的记录,亦即:当用户从表中删除一些记录时,DELETE触发器自动执行,要删除的记录在实际表中消失,内存中的临时逻辑表deleted中则添加一个和别删除记录相同的的记录。如果用户对表中数据进行更新,系统的理解是:修改一条记录等于插入一条新记录,同时删除
16、旧记录。当对定义了UPDATE触发器的表记录修改时,表中原记录移到deleted表中,修改过的记录插入到inserted表中。deleted表和inserted表的结构总是与被该触发器作用的表的结构相同,注意这两个特殊表不能被其他过程引用,这能由创建它们的触发器引用。对deleted,inserted逻辑表的查询方法与一般数据库表的查询方法相同14.5.2触发器的修改语法格式:ALTERTRIGGE
此文档下载收益归作者所有