《SQLServer2005数据库技术及应用》课件第14章 存储过程和触发器_第1页
《SQLServer2005数据库技术及应用》课件第14章 存储过程和触发器_第2页
《SQLServer2005数据库技术及应用》课件第14章 存储过程和触发器_第3页
《SQLServer2005数据库技术及应用》课件第14章 存储过程和触发器_第4页
《SQLServer2005数据库技术及应用》课件第14章 存储过程和触发器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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语句集合,有些类似上一章提到的用户自定义函数,所不同的是存储过程的语句存储在SQL Server服务器端数据库中,而不是存储在客户计算机上,并且在使用前经过了编译处理设计存储过程的主要目的是提高数据检索速度,而且存储过程具有传递参数和执行逻辑表达式的功

2、能,使用它有助于在SQL Server中处理比较复杂的任务 存储过程分类系统存储过程 是SQL Server安装好后系统自动提供的存储过程,可以作为命令执行各种操作 用户自定义存储过程 是指用户在数据库中自己创建的存储过程 扩展存储过程 在SQL Server环境之外通过对动态链接库(DLL)的调用执行的存储过程被称为扩展存储过程 14.2 用户存储过程的创建与执行创建存储过程的语法格式:CREATE PROCEDURE owner. procedure_name parameter data_type =default OUTPUT ,n1 WITH RECOMPILE | ENCRYPTI

3、ON | RECOMPILE, ENCRYPTION AS sql_statement n2 14.2 用户存储过程的创建与执行执行存储过程的语法格式: EXECUTE return_status= procedure_name | procedure_name_var parameter= value | variable OUTPUT | DEFAULT ,nWITH RECOMPILE 14.3 用户存储过程的修改语法格式:ALTER PROC EDURE procedure_name parameter data_type VARYING =default OUTPUT ,n1 WIT

4、H RECOMPILE|ENCRYPTION|RECOMPILE, ENCRYPTION FOR REPLICATION AS sql_statement n2 14.4 用户存储过程的删除当不再使用一个存储过程时,就要把它从数据库中删除。使用DROP PROCEDURE语句可永久地删除存储过程。语法格式: DROP PROCEDURE procedure ,n 14.5 触发器触发器可以看作一类特殊的存储过程,与一般存储过程不同的就是它不是由用户直接调用执行的,而是事先设好触发条件,满足条件时触发器就会自动执行。触发器的主要作用是保护表中的数据,当对表的操作影响到触发器保护的数据时,触发器自

5、动执行。一般情况下,对表数据的操作有:插入、修改、删除,因而维护数据的触发器也可分为三种类型:INSERT, UPDATE和DELETE。使用触发器的主要目的是实现比较复杂的数据完整性 14.5.1 利用SQL命令创建触发器 一般语法格式:CREATE TRIGGER trigger_nameON table|view WITH ENCRYPTION FOR INSERT ,DELETE,UPDATEASsql_statementn 触发器中使用的特殊表执行触发器时,SQL Server统会自动创建两个特殊的表:inserted表和deleted表,它们是临时的逻辑表,由系统维护,不允许用户直

6、接对它们进行修改。这两个临时逻辑表存放在计算机内存中而不是数据库里,所以触发器工作完成后即被删除 触发器中使用的特殊表inserted逻辑表:当用户向表中插入数据时,INSERT触发器触发自动执行,新记录不仅插入到要求的实际表中,而且还同样插入到inserted表中,也就是说实际上新数据在内存中还有一个副本。deleted逻辑表:用于保存已从表中删除的记录,亦即:当用户从表中删除一些记录时,DELETE触发器自动执行,要删除的记录在实际表中消失,内存中的临时逻辑表deleted中则添加一个和别删除记录相同的的记录。如果用户对表中数据进行更新,系统的理解是:修改一条记录等于插入一条新记录,同时删除旧记录。当对定义了UPDATE触发器的表记录修改时,表中原记录移到deleted表中,修改过的记录插入到inserted表中。deleted表和inserted表的结构总是与被该触发器作用的表的结构相同,注意这两个特殊表不能被其他过程引用,这能由创建它们的触发器引用。对deleted, inserted逻辑表的查询方法与一般数据库表的查询方法相同 14.5.2 触发器的修改语法格式:ALTER TRIGGER trigger_nameON table|vie

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论