当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server数据库技术(71)

MSSQL
精细讲述SQL Server数据库备份多种方法
让SQL Server也能使用2G以上内存
SQL Server数据库崩溃恢复之法
创建区分大小写的SQL Server 2000实例
SQL Server中易混淆的数据类型
如何优化SQL Server数据库查询
使用Robot连接SQL的例子
如何让你的SQL运行得更快
对Sql Server中的表添加级联更新和级联删除
常用SQL语句书写技巧
SQL Server与Oracle实施成本上的差异
解析SQL Server的数据类型 BLOB
SQL Server数据库和XML标识语言的集成
SQLServer 数据库还原和孤立用户的解决办法
SQL Server 2000/2005 分页SQL
Sql Server锁表
SQLServer2005实现远程数据库备份
SQL精妙语句
SQL Server 2008的逻辑查询处理步骤
如何让你的SQL运行得更快

MSSQL 中的 SQL Server数据库技术(71)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 23 ::
收藏到网摘: n/a

    在MS SQL Server 2000 中,创建一个存储过程有两种方法:一种是使用Transaction-SQL 命令Create Procedure, 另一种是使用图形化管理工具Enterprise Manager。 用Transaction- SQL 创建存储过程是一种较为快速的方法,但对于初学者,使用Enterprise Manager 更易理解,更为简单。
当创建存储过程时,需要确定存储过程的三个组成部分;

  • 所有的输入参数以及传给调用者的输出参数。
  • 被执行的针对数据库的操作语句,包括调用其它存储过程的语句;
  • 返回给调用者的状态值,以指明调用是成功还是失败。
12.2.1 使用Enterprise Manager 创建存储过程
按照下述步骤用Enterprise Manager 创建一个存储过程:

  • 启动Enterprise Manager, 登录到要使用的服务器。
  • 选择要创建存储过程的数据库,在左窗格中单击Stored Procedure 文件夹,此时在右窗格中显示该数据库的所有存储过程,如图12-1 所示。
  • 右击Stored Procedure 文件夹,在弹出菜单中选择New Stored Procedure, 此时打开创建存储过程对话框,如图12-2 所示。

     
  • 输入存储过程正文。
  • 单击Check Syntax, 检查语法是否正确。
  • 单击OK, 保存。
  • 在右窗格中,右击该存储过程,在弹出菜单中选择All task, 选择ManagePermissions, 设置权限,如图12-3 所示。

12.2.2 用CREATE PROCEDURE 命令创建存储过程
通过运用Create Procedure 命令能够创建存储过程,在创建存储过程之前,应该考虑到以下几个方面:

  • 在一个批处理中,Create Procedure 语句不能与其它SQL 语句合并在一起;
  • 数据库所有者具有默认的创建存储过程的权限,它可把该权限传递给其它的用户;
  • 存储过程作为数据库对象其命名必须符合命名规则;
  • 只能在当前数据库中创建属于当前数据库的存储过程。
用Create Procedure 创建存储过程的语法规则如下:
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]
[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
[ FOR REPLICATION ]
AS sql_statement [ ...n ]

各参数的含义如下:

  • procedure_name
    是要创建的存储过程的名字,它后面跟一个可选项number, 它是一个整数,用来区别一组同名的存储过程。存储过程的命名必须符合命名规则,在一个数据库中或对其所有者而言,存储过程的名字必须惟一。
  • @parameter
    是存储过程的参数。在Create Procedure 语句中,可以声明一个或多个参数。当调用该存储过程时,用户必须给出所有的参数值,除非定义了参数的缺省值。若参数的形式以 @parameter=value 出现,则参数的次序可以不同,否则用户给出的参数值必须与参数列表中参数的顺序保持一致。若某一参数以@parameter=value 形式给出,那么其它参数也必须以该形式给出。一个存储过程至多有1024 个参数。
  • Data_type
    是参数的数据类型。在存储过程中,所有的数据类型包括text 和image 都可被用作参数。但是,游标cursor 数据类型只能被用作OUTPUT 参数。当定义游标数据类型时,也必须对VARING 和OUTPUT 关键字进行定义。对可能是游标型数据类型的OUTPUT 参数而言,参数的最大数目没有限制。
  • VARYING
    指定由OUTPUT 参数支持的结果集,仅应用于游标型参数。
  • Default
    是指参数的缺省值。如果定义了缺省值,那么即使不给出参数值,则该存储过程仍能被调用。缺省值必须是常数,或者是空值。
  • OUTPUT
    表明该参数是一个返回参数。用OUTPUT 参数可以向调用者返回信息。Text 类型参数不能用作OUTPUT 参数。
  • RECOMPILE
    指明SQL Server 并不保存该存储过程的执行计划,该存储过程每执行一次都又要重新编译。
  • ENCRYPTION
    表明SQL Server 加密了syscomments 表,该表的text 字段是包含有Create procedure语句的存储过程文本,使用该关键字无法通过查看syscomments 表来查看存储过程内容。
  • FOR REPLICATION
    选项指明了为复制创建的存储过程不能在订购服务器上执行,只有在创建