赛迪网 > IT技术 数据库 > Sybase
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

详细讲解Sybase存储过程的建立和使用 (1)

发布时间:2007.12.28 04:40     来源:赛迪网    作者:503361

Sybase存储过程的建立和使用:

存储过程的特点:

Sybase的存储过程是集中存储在SQL Server中的预先定义且已经编译好的事务。存储过程由SQL语句和流程控制语句组成。它的功能包括:接受参数;调用另一过程;返回一个状态值给调用过程或批处理,指示调用成功或失败;返回若干个参数值给调用过程或批处理,为调用者提供动态结果;在远程SQL Server中运行等。   

存储过程的性能特点如下:

·存储过程是预编译过的,这就意味着它与普通的SQL语句或批处理的SQL语句不同,当首次运行一个存储过程时,SQL Server的查询处理器对其进行分析,在排除了语法错误之后形成存储在系统中的可执行方案。由于查询处理的大部分工作已经完成,所以存储过程执行速度很快。

·存储过程和待处理的数据都放在同一台运行SQL Server的计算机上,使用存储过程查询当地的数据,效率自然很高。

·存储过程一般多由Client端通过存储过程的名字进行调用,即跨网传送的只是存储过程的名字及少量的参数(如果有的话),而不是构成存储过程的许多SQL语句,因此可以减少网络传输量,加快系统响应速度。

·存储过程还有着如同C语言子函数那样的被调用和返回值的方便特性。

所以,存储过程大大增强了SQL语言的功能、效率和灵活性。掌握和应用好存储过程,对进一步发挥Sybase数据库系统的强大功能有着重要的意义。   

存储过程的语法规则:

建立存储过程的语法规则为:

CREATE PROCedure[owner.]procedurename[;number] 
[[(]@parameter_name datatype[=default][OUTput] 
[,@parameter_name datatype[=default][OUTput]]...[)]] 
[WITH RECOMPILE] 
AS SQL_statements

使用存储过程的语法规则为:

[EXECute][@return-status=] 
[[[server.]database.]owner.]procedurename[;number] 
[[@parameter_name=]value|[@parameter_name=]@varialbe[OUTput] 
[,[@parameter_name=]value|[@parameter_name=]@variable[OUTput]...]] 
[WITH RECOMPILE]

[page]下面简要介绍这两个命令的常用选项以及建立和使用存储过程的要点,关于选项的更为详细的说明请参考有关手册。

·[[[server.]database.]owner.]procedure_name:存储过程的名字。

·@parameter_name datatype[=default][OUTput]:形式参数(形参)的名称、类型。df ault是赋予的缺省值(可选),OUTput指定本参数为输出参数(可选)。形参是存储过程中的自变量,可以有多个,名字必须以@打头,最长30个字符。

·SQL_statements:定义存储过程功能的SQL语句。

·@return_status:接受存储过程返回状态值的变量。

·[@parameter_name=]value:实际参数(实参),@parameter_name为实参的名称(可选)。如果某个实参以@parameter_name=value提供,那么随后的实参也都要采用这一形式提供。

·[@parameter_name=]@varialbe[OUTput]:将变量@varialbe中的值作为实参传递给形参@parameter_name(可选),如果变量@varialbe是用来接受返回的参数值,则选项OUTput不可缺少。   

存储过程的建立和使用,我们将通过几个例子进行介绍。

假设有一个用下述语句生成的技能工资表RS-LS-GZ-JiNeng:

create table RS_LS_GZ_JiNeng     /*技能工资表*/ 

(GeRen_id char(4),         /*个人代码 */ 

RiQi smalldatetime,         /*执行日期 */ 

YuanYin_id char(1) null,       /*变动原因代码 */ 

JinE smallmoney)           /*技能工资金额 */

该表存储着某单位员工多年来技能工资的历史档案。

1 2 3 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 电子商务盈利新招:垂直化渠道管理新趋势
· 互联网加速蜕变 运营商进军搅动市场格局
· 08 IT技术风起云涌 专访 ITIL落地难在哪
· 视频加密保护解决方案 文档安全解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统