欢迎来到天天文库
浏览记录
ID:32379988
大小:54.81 KB
页数:4页
时间:2019-02-04
《存储过程的创建和使用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、存储过程的创建和使用一、特点l存储过程包含一条或多条Transact-SQL语句。l存储过程可以接受输入参数并可以返回输出值。l一个存储过程可以调用另一个存储过程。l存储过程会返回执行情况的状态代码给调用它的的程序。二、优点l实现模块化编程,一个存储过程可以被多个用户共享和重用。l存储过程有对数据库立即访问的的功能。l使用存储过程可以加快程序的运行速度。l使用存储过程可以减少网络流量。存储过程存储在数据库内,有应用程序通过一个调用语句就可以执行它,不需要大量Transact-SQL语句传送到服务器端。l使用存储过程可以提高数据库的安全性。用户可以调用存储过程,实现对表
2、中数据的有限操作,但可以不赋予其直接修改数据表的权限,这样就提高了表中数据的安全性。三、创建方式l使用SQLServer企业管理器创建存储过程。(展开指定数据库→可编程性→存储过程(右键单击选择)→新建存储过程)l使用创建存储过程向导创建存储过程。l使用Transact-SQL语句中的CREATEPROCEDURE命令创建存储过程。(在“新建查询”中编辑)四、组成l所有输入参数以及传递个调用者的的输出参数。l被执行的针对数据库的操作语句,包括调用其他存储过程的语句。返回给调用者的状态值,以指明调用是成功还是失败。五、使用Transact-SQL创建存储过程(1)注意事
3、项:l不能将CREATEPROCEDURE语句与其他SQL语句租和到单个批处理中。l创建存储过程的权限默认属于数据库所有者,该所有者可以将此权限授予其他用户。l存储过程是数据库对象,其名称必须遵守标识符规则。l只能在当前数据库中创建存储过程。(2)语法:CREATEPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,…n]WITH{RECOMPILE
4、ENCRYPTION
5、RECOMPILE,ENCRYPTION}][FORREPLICATION]A
6、Ssql_statement[…n](1)代码意义:lprocedure_name:存储过程名。lnumber:可选,用来对同名存储过程分组,一边使用一条DROPPROCEDURE语句即可将同一组的过程一起删除。例如:DROPPROCEDUREstuInfoProc语句将除去整个组。如果名称中报行定界标识符,则数字不应包含在标识符中,只应在procedure_name前后是哟好难过适当的定界符。l@parameter:过程中的参数。在CREATEPROCERDURE语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。存
7、储过程最多可以定义2100个参数。ldata_type:用于指定参数的数据类型。在存储过程中,所有数据类型(包括text、ntext和image)均可以用作存储过程的参数。lVARYING:用于指定作为输出OUTPUT参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用与游标参数。lDefault:用于指定参数的默认值。如果指定了默认值,不必指定参数的值即可执行过程。默认值必须是常量或空值。如果过程将对该参数使用LIKE关键字,那么默认值中可以包含通配符(%,_,[],[^]).lOUTPUT:表明该参数是一个返回参数。该选项值可以返回给EXEC[UTE].使
8、用OUTPUT参数可将信息返回给调用过程。Text、ntext和image参数可用作OUTPUT参数。使用OUTPUT关键字的输出参数可以是游标占位符。lRECOMPILE:表明SQLServer不会保存该存储过程的执行计划,该存储过程每执行一次都要重新编译。在使用非典型值或临时值时而不希望覆盖保存在内存中的执行计划时,就可以使用RECOMPILE选项。lENCRYPTION:表示对存储过程文本进行加密。在系统表syscomments中的text字段是包含CREATEPROCEDURE语句的存储过程文本。使用ENCRYPTION关键字无法通过查看syscomments
9、表来查看存储过程的内容。lFORREPLICATION:用于指定该存储过程只能在数据复制时使用。本选项不能和WITHRECOMPILE选项一起使用。lAS:用于指定该存储过程要执行的操作。lsql_statement:是存储过程中包含的任意数目和类型的Transaction-SQL语句。(2)示例:--删除已存在的存储过程UERstudentIFEXISTS(SELECTnameFROMsysobjectsWHEREname=‘stu_Age’ANDtype=‘P’)DROPPROCEDUREstu_AgeGO--创建带参数和输出返回的存储过程USE
此文档下载收益归作者所有