欢迎来到天天文库
浏览记录
ID:43440717
大小:1.63 MB
页数:62页
时间:2019-10-08
《SQL_Server_2008基础教程11》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2021年9月7日第1页第11章存储过程、触发器和函数本章概述本章要点本章内容2021年9月7日第2页本章概述如何提高Transact-SQL语句的执行效率呢?如何加强数据库中数据完整性的机制呢?这些问题的解决都依赖于数据库的编程对象。典型的数据库编程对象包括视图、存储过程、触发器、函数等。视图在第10章已经讲过了,本章将讲述其他常用的数据库编程对象。存储过程是一个可重用的代码模块,可以高效率地完成指定的操作。触发器是一种特殊类型的存储过程,可以实现自动化的操作。用户定义函数是由用户根据应用程序的
2、需要而定义的可以完成特定操作的函数。本章将全面研究存储过程、触发器、用户定义函数等特点和使用方式。2021年9月7日第3页本章要点存储过程的特点、类型和作用使用CREATEPROCEDURE语句创建存储过程存储过程的执行方式DML触发器的特点和创建方式DML触发器的工作原理使用CREATETRIGGER语句创建DML触发器DDL触发器的特点和创建方式用户定义函数的类型和特点使用CREATEFUNCTION语句创建用户定义函数2021年9月7日第4页本章内容11.1存储过程11.2触发器11.3用户
3、定义函数11.4本章小结11.1存储过程存储过程可以提高应用程序的设计效率和增强系统的安全性。本节将全面介绍存储过程的特点、类型、创建、执行等内容。2021年9月7日第5页存储过程的特点和类型存储过程是一个可重用的代码模块,可以高效率地完成指定的操作。在MicrosoftSQLServer2008系统中,可以使用Transact-SQL语言编写存储过程,也可以使用CLR方式编写存储过程。使用CLR编写存储过程是MicrosoftSQLServer2008系统与.NET框架紧密集成的一种表现形式。2
4、021年9月7日第6页类型在MicrosoftSQLServer2008系统中,提供了3种基本的存储过程类型,即用户定义的存储过程、扩展存储过程和系统存储过程。2021年9月7日第7页创建存储过程的规则在设计和创建存储过程时,应该满足一定的约束和规则。只有满足了这些约束和规则,才可以创建有效的存储过程。虽然说在CREATEPROCEDURE语句中可以包括任意数量和类型的Transact-SQL语句,但是某些特殊的语句是不能包含在存储过程定义中的。2021年9月7日第8页使用CREATEPROCED
5、URE语句在MicrosoftSQLServer2008系统中,可以使用CREATEPROCEDURE语句创建存储过程。需要强调的是,必须具有CREATEPROCEDURE权限才能创建存储过程,存储过程是架构作用域中的对象,只能在本地数据库中创建存储过程。在创建存储过程时,应该指定所有的输入参数、执行数据库操作的编程语句、返回至调用过程或批处理表明成功或失败的状态值、捕捉和处理潜在错误的错误处理语句。2021年9月7日第9页CREATEPROCEDURE语句CREATEPROCEDURE语句的基本
6、语法形式如下所示:CREATEPROCEDUREprocedure_nameparameter_namedata_type,…WITHprocedure_optionASsql_statement2021年9月7日第10页创建一个简单的存储过程2021年9月7日第11页创建一个带参数的存储过程2021年9月7日第12页创建带有OUTPUT类型参数的存储过程2021年9月7日第13页执行存储过程在MicrosoftSQLServer2008系统中,可以使用EXECUTE语句执行存储过程。EXECUT
7、E语句也可以简写为EXEC。如果将要执行的存储过程需要参数,那么应该在存储过程名称后面带上参数值。2021年9月7日第14页执行简单的存储过程2021年9月7日第15页为存储过程直接提供参数值2021年9月7日第16页为存储过程间接提供参数值2021年9月7日第17页使用OUTPUT参数执行存储过程2021年9月7日第18页修改和删除存储过程在MicrosoftSQLServer2008系统中,可以使用ALTERPROCEDURE语句修改已经存在的存储过程。修改存储过程,不是删除和重建存储过程,其
8、目的是保持存储过程的权限不发生变化。例如,如果修改HumanResources.GetEmployeeInfo存储过程,那么与该存储过程对象相关的权限将不会发生任何变化。但是,如果删除HumanResources.GetEmp-loyeeInfo存储过程并且重新创建同名的存储过程,那么与该存储过程对象相关的权限都需要重新定义。2021年9月7日第19页删除存储过程2021年9月7日第20页存储过程的执行过程存储过程创建之后,在第一次执行时需要经过语法分析阶段、解析阶段、编译阶段和执
此文档下载收益归作者所有