资源描述:
《存储过程和游标ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、7.1存储过程概述存储过程简介SQLServer提供了一种方法:可以将一些预先编译的SQL语句集中起来由SQLServer数据库服务器来完成以实现某个任务,这就是存储过程。存储过程常驻在SQLServer数据库服务器的内存中。存储过程优点存储过程分类7.1.1存储过程的创建使用Createprocedure语句CREATEPROC[EDURE]procedure_name[{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE
2、ENCRYPT
3、ION
4、RECOMPILE,ENCRYPTION}]ASsql_statement新存储过程的名称过程中的参数参数数据类型参数的默认值参数是返回参数指定过程要执行的操作过程中要包含的任意数目和类型的Transact-SQL语句使用Createprocedure语句例1创建存储过程,查询安徽表中所有内容,并按名字进行排序。CREATEPROCEDUREexp1asSelect*From安徽Orderbyname使用Createprocedure语句例2创建存储过程,加入一条记录到安徽表中。CREATEPROCEDUREexp2@I
5、Dint,@AREAfloat,@PERIMETERfloat,@BNDRY_IDchar(6),@NAMEchar(8),@DIQUchar(8)asInsertinto安徽Valus(@ID,@AREA,@PERIMETER,@BNDRY_ID,@NAME,@DIQU)存储过程参数的使用例3创建带参数的存储过程,完成输入某一个字,输出包含该字的记录。CREATEPROCEDUREexp2@namevarchar(8)AsSelect*From安徽WhereNAMElike‘%’+@name+’%’存储过程参数的使用例4创建带
6、参数的存储过程,完成输入某行政区划代码,如果存在输出该县(市)的信息,如果不存在,则显示“您输入错误!”CREATEPROCEDUREexp4@BNDRY_IDvarchar(8)AsBeginDeclare@bit_existbitIfexists(Select*From安徽WhereBNDRY_ID=@BNDRY_ID)Set@bit_exist=1elseSet@bit_exist=0if@bit_exist=1BeginSelect*From安徽WhereBNDRY_ID=@BNDRY_IDEndElsePrint‘您输
7、入错误!’end存储过程参数的使用例5创建带参数的存储过程,完成输入某行政区划代码前4位,统计该地区下辖县(市)有几个。CREATEPROCEDUREexp5@BNDRY_IDvarchar(8)AsSelectcount(*)From安徽WhereBNDRY_IDlike@BNDRY_ID+‘%’加密存储过程如果用户不想让其他人查看存储过程的定义文本,可以在定义存储过程的同时,对其进行加密,来保护代码的安全性,通过加密的存储过程可以正常使用,但是无法查看该存储过程的内容,在SQLServerManagementStudio中也
8、不能修改,只能通过ALTER语句来修改。CREATEPROCEDUREexp6WithencryptionasSelect*From安徽OrderbynameExecsp_helptextexp6查看存储过程源代码存储过程的维护存储过程修改ALTERPROC[EDURE]procedure_name[{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE
9、ENCRYPTION
10、RECOMPILE,ENCRYPTION}]ASsql_state
11、ment存储过程修改ALTERPROCEDUREexp6asSelectdistinctDIQUFrom安徽存储过程删除使用命令删除存储过程DROPPROC[EDURE]procedure_name[,…n]DROPPROCEDUREexp67.2分行处理程序—游标在数据库开发过程中,使用SELECT语句查询,得到一个结果集,对这个结果集中的不同数据行,可能要做不同的处理。也就是要逐一处理每一个数据行。游标提供了一种比较好的解决方案。7.2分行处理程序—游标例在图书表中查询出与数据库相关的图书,并对其中的部分书的价格进行调整。7
12、.2.2使用游标操作步骤:1.声明游标(变量)。2.打开游标。3.从一个游标中提取信息。4.关闭(释放)游标。1.声明游标语法格式:DECLARE<游标名>[SCROLL]CURSORFOR
13、UPDATE[OF<列名