灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2512回复:0

[mysql]My SQL Server存储过程创建及调用

楼主#
更多 发布于:2013-06-02 16:09
My SQL Server存储过程创建及调用
 
存储过程优点:
  ① 执行速度快
  ② 模板化程序设计
  ③ 减少网络流量
  ④提供系统安全性
 
.什么是存储过程
 存储过程(stored procdures)是Sql查询语句与控制流语句的预编译集合,并以特定的名称保存在数据库中。且分为自定义存储过程与系统存储过程
 
·系统存储过程
   →系统存储过程命名以“sp_”开头和“xp_”开头。在master数据库中
   →扩展存储过程:xp_cmdshell  ,可以调用DOS命令
 用法如下:
  exec xp_cmdshell Dos命令 [no_output]
   →execute 用来调用存储过程,也可缩写为exec
 语法:
  execute '存储过程名' '参数'  --如果没有参数则省略参数
    
·用户自定义存储过程
语法:
    create procedure 存储过程名
 @参数1名 数据类型[ = 默认值][参数类型(输入/输出)]
 ...
 @参数n名 数据类型[ = 默认值][参数类型(输入/输出)]
as
   sql语句
    ...
go
*注意:参数类型分为输入与输出参数,默认为输入参数,使用output表示输出,创建存储过程最好以 proc 开头。
 
①创建不带参数的存储过程
例:
  查询所有空闲的电脑信息
--判断存储过程是否存在
if exists(select * from sysobjects where[name]='proc_GetPc')
 drop procedure proc_GetPc
go
--创建不带参数的存储过程
create procedure proc_GetPc
--没有参数
as
select pcId as '电脑编号',
'电脑使用状态'=case
 when PcUse=0 then '空闲'
 when PcUse=1 then '空闲'
PcNote as '备注'
from PcInfo where PcUse=0
go
 
--调用存储过程
execute proc_GetPc
 
②创建带输入参数的存储过程
 语法:
create procedure 存储过程名
 @参数1名 数据类型[= 默认值]
 ...
 @参数N名 数据类型[= 默认值]
as
  SQL语句
  ...
go
 
③创建带输出参数的存储过程
   与C语言的返回值类似,执行存储过程后,一可以返回值。但与C语言只能返回一个值不同,存储过程可以返回一个或多个值。这就需要我们定义并接收输出(output)参数。
 
④return的使用
    return 关键字终止存储过程的执行或返回数据。类似C语言函数中的return。
    return 只能返回int 类型,output 返回任意类型。
 
·处理错误信息
  SQL Server中使用raiserror返回用户自定义的错误信息。
语法:
    RAISERROR(自定义的错误信息,错误的严重级别,错误的状态)
→自定义错误信息:表示输出的错误提示文本。
→错误的严重级别:表示用户自定义错误的严重级性级别。
→错误的状态:表示自定义错误的状态,值的范围在1-127。
 
.存储过程是数据库对象,可以使用 DROP PROCEDURE语句删除存储过程。

喜欢0 评分0
游客

返回顶部