SQLServer技术(71)
来源:互联网 发布:2016中国国际储备数据 编辑:程序博客网 时间:2024/06/10 19:46
在MS2000中,创建一个存储过程有两种方法:一种是使用Transaction-SQL命令CreateProcedure,另一种是使用图形化管理工具EnterpriseManager。用Transaction-SQL创建存储过程是一种较为快速的方法,但对于初学者,使用EnterpriseManager更易理解,更为简单。
当创建存储过程时,需要确定存储过程的三个组成部分;
所有的输入参数以及传给调用者的输出参数。被执行的针对数据库的操作语句,包括调用其它存储过程的语句;返回给调用者的状态值,以指明调用是成功还是失败。
启动EnterpriseManager,登录到要使用的服务器。选择要创建存储过程的数据库,在左窗格中单击StoredProcedure文件夹,此时在右窗格中显示该数据库的所有存储过程,如图12-1所示。右击StoredProcedure文件夹,在弹出菜单中选择NewStoredProcedure,此时打开创建存储过程对话框,如图12-2所示。
在一个批处理中,CreateProcedure语句不能与其它SQL语句合并在一起;数据库所有者具有默认的创建存储过程的权限,它可把该权限传递给其它的用户;存储过程作为数据库对象其命名必须符合命名规则;只能在当前数据库中创建属于当前数据库的存储过程。用CreateProcedure创建存储过程的语法规则如下:
CREATEPROC[EDURE]procedure_name[;number]
[{@parameterdata_type}
[VARYING][=default][OUTPUT]
][,...n]
[WITH
{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
[FORREPLICATION]
ASsql_statement[...n]
各参数的含义如下:
procedure_name
是要创建的存储过程的名字,它后面跟一个可选项number,它是一个整数,用来区别一组同名的存储过程。存储过程的命名必须符合命名规则,在一个数据库中或对其所有者而言,存储过程的名字必须惟一。@parameter
是存储过程的参数。在CreateProcedure语句中,可以声明一个或多个参数。当调用该存储过程时,用户必须给出所有的参数值,除非定义了参数的缺省值。若参数的形式以@parameter=value出现,则参数的次序可以不同,否则用户给出的参数值必须与参数列表中参数的顺序保持一致。若某一参数以@parameter=value形式给出,那么其它参数也必须以该形式给出。一个存储过程至多有1024个参数。Data_type
是参数的数据类型。在存储过程中,所有的数据类型包括text和image都可被用作参数。但是,游标cursor数据类型只能被用作OUTPUT参数。当定义游标数据类型时,也必须对VARING和OUTPUT关键字进行定义。对可能是游标型数据类型的OUTPUT参数而言,参数的最大数目没有限制。VARYING
指定由OUTPUT参数支持的结果集,仅应用于游标型参数。Default
是指参数的缺省值。如果定义了缺省值,那么即使不给出参数值,则该存储过程仍能被调用。缺省值必须是常数,或者是空值。OUTPUT
表明该参数是一个返回参数。用OUTPUT参数可以向调用者返回信息。Text类型参数不能用作OUTPUT参数。RECOMPILE
指明SQLServer并不保存该存储过程的执行计划,该存储过程每执行一次都又要重新编译。ENCRYPTION
表明SQLServer加密了syscomments表,该表的text字段是包含有Createprocedure语句的存储过程文本,使用该关键字无法通过查看syscomments表来查看存储过程内容。FORREPLICATION
选项指明了为复制创建的存储过程不能在订购服务器上执行,只有在创建过滤存储过程时(仅当进行数据复制时过滤存储过程才被执行),才使用该选项。FORREPLICATION与WITHRECOMPILE选项是互不兼容的。AS
指明该存储过程将要执行的动作。Sql_statement
是任何数量和类型的包含在存储过程中的SQL语句。
下面将给出几个例子,用来详细介绍如何创建包含有各种保留字的存储过程。
&上一页
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- SQLServer技术(71)
- SQLServer技术(103)
- SQLServer技术(104)
- SQLServer技术(105)
- SQLServer技术(106)
- SQLServer技术(107)
- SQLServer技术(108)
- SQLServer技术(109)
- SQLServer技术(110)
- SQLServer技术(111)
- SQLServer技术(112)
- SQLServer技术(113)
- SQLServer技术(114)
- SQLServer技术(115)
- SQLServer技术(116)
- SQLServer技术(117)
- SQLServer技术(118)
- SQLServer技术(119)
- 审核策略设置(服务器安全)
- SQLServer技术(69)
- SQLServer技术(70)
- 微软的面试难题
- J2EE英文专业术语缩写
- SQLServer技术(71)
- SQLServer技术(72)
- This is START !!!
- 奥运火炬在长野传递 日右翼蛮横闹场_资讯_凤凰网
- SQLServer技术(05)
- 百度贴吧息县吧吧主被传审——中国首例贴吧案件
- SQLServer技术(06)
- ----js牛文
- SQLServer技术(07)