首页计算机计算机软件SQLServer2005数据库技术及应用 14 第14章 存储过程和触发器.pptx

14 第14章 存储过程和触发器.pptx

页数:14页文件大小:374.1 KB来源: SQLServer2005数据库技术及应用ppt课件

本章介绍存储过程这一预编译的T-SQL语句集合,说明系统存储过程、用户自定义存储过程与扩展存储过程的分类,给出CREATE PROCEDURE、EXEC、ALTER PROCEDURE与DROP PROCEDURE的完整语法;随后讲解触发器这类特殊的存储过程,包括三种触发类型、CREATE TRIGGER语法,以及触发器执行时系统自动生成的inserted与deleted临时逻辑表的作用。

第14章存储过程和触发器章封面,标示本章主题为存储过程与触发器的管理
第14章存储过程和触发器目录页,列出存储过程的概念、创建执行、修改删除与触发器管理
14.1存储过程的基本概念的要点列表,存储过程是一组为了完成特定功能的T-SQL语句集合,有些类似上一章提到的用户自定义函数
查看本课件的文字版(共 14 页,供检索与复制)

第1页:第14章存储过程和触发器

第14章存储过程和触发器

第2页:第14章目录:存储过程与触发器

第14章存储过程和触发器

14.1存储过程的基本概念

14.2用户存储过程的创建与执行

14.3用户存储过程的修改

14.4用户存储过程的删除

14.5触发器14.5.1利用SQL命令创建触发器14.5.2触发器的修改14.5.3触发器的删除

第3页:14.1存储过程的基本概念

14.1存储过程的基本概念

  • 存储过程是一组为了完成特定功能的T-SQL语句集合,有些类似上一章提到的用户自定义函数,所不同的是存储过程的语句存储在SQLServer服务器端数据库中,而不是存储在客户计算机上,并且在使用前经过了编译处理
  • 设计存储过程的主要目的是提高数据检索速度,而且存储过程具有传递参数和执行逻辑表达式的功能,使用它有助于在SQL Server中处理比较复杂的任务

第4页:存储过程分类

存储过程分类

  • 系统存储过程是SQL Server安装好后系统自动提供的存储过程,可以作为命令执行各种操作
  • 用户自定义存储过程是指用户在数据库中自己创建的存储过程
  • 扩展存储过程在SQL Server环境之外通过对动态链接库(DLL)的调用执行的存储过程被称为扩展存储过程

第5页:14.2用户存储过程的创建与执行

14.2用户存储过程的创建与执行创建存储过程的语法格式:CREATE PROC[EDURE] [owner.] procedure_name[ { @parameter data_type }[ =default ] [OUTPUT ] ][ ,…n1 ][ WITH { RECOMPILE | ENCRYPTION | RECOMPILE,ENCRYPTION }]AS sql_statement[ …n2 ]

第6页:用户存储过程的创建与执行(续)

14.2用户存储过程的创建与执行执行存储过程的语法格式:[ EXEC[UTE] ]{[@return_status=]{ procedure_name | @procedure_name_var }[[ @parameter= ] {value | @variable [OUTPUT]| [DEFAULT] }[,…n][WITH RECOMPILE]}

第7页:14.3用户存储过程的修改

14.3用户存储过程的修改语法格式:ALTER PROC [ EDURE ] procedure_name[ { @parameter data_type }[ VARYING ] [ =default ] [OUTPUT ] ][ ,…n1 ][ WITH { RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION }][ FOR REPLICATION ]ASsql_statement[ …n2 ]

第8页:14.4用户存储过程的删除

14.4用户存储过程的删除

当不再使用一个存储过程时,就要把它从数据库中删除。使用DROP PROCEDURE语句可永久地删除存储过程。 语法格式:DROP PROCEDURE {procedure}[,…n]

第9页:14.5触发器

14.5触发器

  • 触发器可以看作一类特殊的存储过程,与一般存储过程不同的就是它不是由用户直接调用执行的,而是事先设好触发条件,满足条件时触发器就会自动执行。
  • 触发器的主要作用是保护表中的数据,当对表的操作影响到触发器保护的数据时,触发器自动执行。
  • 一般情况下,对表数据的操作有:插入、修改、删除,因而维护数据的触发器也可分为三种类型:INSERT, UPDATE和DELETE。
  • 使用触发器的主要目的是实现比较复杂的数据完整性

第10页:14.5.1创建触发器语法

14.5.1利用SQL命令创建触发器一般语法格式:CREATE TRIGGER trigger_nameON {table|view}[ WITH ENCRYPTION ]FOR {INSERT][,][DELETE][,][UPDATE]}ASsql_statement[…n]

第11页:触发器中使用的特殊表

触发器中使用的特殊表

  • 执行触发器时,SQL Server统会自动创建两个特殊的表:inserted表和deleted表,它们是临时的逻辑表,由系统维护,不允许用户直接对它们进行修改。这两个临时逻辑表存放在计算机内存中而不是数据库里,所以触发器工作完成后即被删除

第12页:触发器中使用的特殊表(续)

触发器中使用的特殊表

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

第13页:14.5.2触发器的修改语法格式

14.5.2触发器的修改语法格式:ALTER TRIGGER trigger_nameON {table|view}[ WITH ENCRYPTION ]FOR {INSERT][,][DELETE][,][UPDATE]}ASsql_statement[…n]

第14页:14.5.3触发器的删除语法格式

14.5.3触发器的删除语法格式:DROP TRIGGER [trigger_name] [,…n]

顶部目录