第第1010章存储过程章存储过程概述概述•问题要把某完成功能的SQL做成类似C语言的函数,供需要时调用,如何做
•什么是存储过程
是一组被编译在一起的T-SQL语句的集合,它们被集合在一起以完成一个特定的任务
•存储过程的分类–系统存储过程
–扩展存储过程(提供从SQLServer到外部程序的接口,以便进行各种维护活动)
–用户自定义的存储过程
•系统执行T-SQL语句的步骤–T-SQL语句发送到服务器
–服务器编译T-SQL语句
–优化产生查询执行计划
–数据库引擎执行查询计划
–执行结果发回客户程序
•注意:存储过程是SQL语句和部分流控语句的预编译集合,存储过程被进行了编译和优化
当存储过程第一次执行时,SQLServer为其产生查询计划并将其保留在内存中,这样以后在调用该存储过程时就不必再进行编译,这能在一定程度上改善系统的性能
存储过程的作用存储过程的作用•从以下几个方面考虑1
模块化编程创建一个存储过程存放在数据库中后,就可以被其他程序反复使用
快速执行存储过程第一次被执行后,就驻留在内存中
以后执行就省去了重新分析、优化、编译的过程
减少网络通信量有了存储过程后,在网络上只要一条语句就能执行一个存储过程
安全机制通过隔离和加密的方法提高了数据库的安全性,通过授权可以让用户只能执行存储过程而不能直接访问数据库对象
•在下例情况下,将使用到存储过程:(1)不需要任何客户端信息而在服务器端完成的操作;(2)涉及到大量行的操作、运算;(3)频繁的、周期性的操作;(4)那些被多个模块共同执行的操作
存储过程和视图的比较存储过程和视图的比较视图存储过程语句只能是SELECT语句可以包含程序流、逻辑以及SELECT语句输入、返回结果不能接受参数,只能返回结果集可以有输入输出参数,也可以有返回值典型应用多个表格的连接查询完成某个特定的较复杂的任务创建、执行简单的存