> 데이터 베이스 > MySQL 튜토리얼 > My SQL Server存储过程创建及调用_MySQL

My SQL Server存储过程创建及调用_MySQL

WBOY
풀어 주다: 2016-06-01 13:34:07
원래의
1107명이 탐색했습니다.

bitsCN.com

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语句删除存储过程。

bitsCN.com
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿