SQL SERVER 4存储过程

2014-11-24 16:57:38 · 作者: · 浏览: 0
SQL SERVER 4存储过程
1、什么是存储过程?
存储过程是SQL查询语句与控制流语句的预编译集合,并以特定的名称保存在 数据库中。存储过程也是数据库对象。
存储过程(procedure)类似于C语言中的函数
用来执行管理任务或应用复杂的业务规则
存储过程可以带参数,也可以返回结果
存储过程可以包含数据操纵语句、变量、逻辑 控制语句等。
2、为什么要使用存储过程?
存储过程的优点:
执行速度更快
允许模块化程序设计
提高 系统安全
减少网络流通量
3、存储过程的分类
系统存储过程
由系统定义,存放在master数据库中
类似C语言中的系统函数
系统存储过程的名称都以“sp_”开头或”xp_”开头
用户自定义存储过程
由用户在自己的数据库中创建的存储过程
类似C语言中的用户自定义函数
常用的系统存储过程:
sp_databases
列出服务器上的所有数据库。
sp_helpdb
报告有关指定数据库或所有数据库的信息
sp_renamedb
更改数据库的名称
sp_tables
返回当前环境下可查询的对象的列表
sp_columns
回某个表列的信息
sp_help
查看某个表的所有信息
sp_helpconstraint
查看某个表的约束
sp_helpindex
查看某个表的索引
sp_stored_procedures
列出当前环境中的所有存储过程。
sp_password
添加或修改登录帐户的密码。
sp_helptext
显示默认值、未 加密的存储过程、用户定义的存储过程、触发器或视图的实际文本。
常用的扩展存储过程:xp_cmdshell
可以执行DOS命令下的一些的操作
以文本行方式返回任何输出
调用语法:
EXEC xp_cmdshell DOS命令 [NO_OUTPUT]
4、如何创建存储过程
定义存储过程的语法:
和C语言的函数一样,参数可选
参数分为输入参数、输出参数
输入参数允许有默认值
CREATE PROC[EDURE] 存储过程名
@参数1 数据类型 = 默认值 OUTPUT,
…… ,
@参数n 数据类型 = 默认值 OUTPUT
AS
SQL语句
GO
5、调用存储过程
EXECUTE(执行)语句用来调用存储过程。
调用的语法如下:
EXEC 过程名 [参数]
EXEC proc_getpc
如何删除一个存储过程?
drop 存储过程名 删除存储过程
6、带参数的存储过程
存储过程的参数分两种:
输入参数
输出参数
输入参数:
用于向存储过程传入值,类似C语言的按值传递;
输出参数:
用于在调用存储过程后
返回结果,类似C语言的
按引用传递;
return关键字可以终止存储过程或者返回数值
7、处理存储过程中的错误
可以使用PRINT语句显示错误信息,但这 些信息是临时的,只能显示给用户。
RAISERROR 显示用户定义的错误信息时
可指定严重级别
设置 系统变量@@ERROR
记录所发生的错误等
RAISERROR语句的用法如下:
msg_id:在sysmessages系统表中指定用户定义错误信息
msg_str:用户定义的特定信息,最长255个字符
severity:定义严重性级别。用户可使用的级别为0–18级
state:表示错误的状态,1至127之间的值
option:指示是否将错误记录到服务器错误日志中
RAISERROR (msg_id | msg_str,severity,
state WITH option[,...n]])