存储过程知识点
| 存储过程 |
存储过程的概念
存储过程是能完成一定功能的T-SQL语句的预编集合,并以特定的名称保存在数据库中。
存储过程的分类
存储过程可分为系统存储过程和自定义存储过程。
系统存储过程一般用途
系统存储过程的主要用途是管理和检索信息的快捷方式。
注:系统存储过程命名以“sp_”开头,并存储在master数据库中。
常用的系统存储过程
|
系统存储过程 |
说明 |
使用语法 |
|
Sp_columns |
查看表列的信息 |
Execute sp_columns 表名 |
|
Sp_databases |
列出服务器中所有数据库 |
Execute sp_databases |
|
Sp_help |
查看某个表的所有信息 |
Execute sp_help |
|
Sp_helpconstraint |
查看某个表中的所有约束 |
Execute sp_helpconstraint 表名 |
|
Sp_helpdb |
列出指定的数据库或服务器上的所有的数据库 |
Execute sp_helpdb 表名 或 execute sp_helpdb |
|
Sp_helptext |
显示数据库对象的定义文本(如:存储过程、视图、) |
Execute sp_helptext 对象名 |
|
Sp_helpindex |
查看表的索引信息 |
Execute sp_helpindex 表名 |
|
Sp_renamedb |
更改数据库名称 |
Execute sp_renamedb 原数据库名称 , 新数据库名称 |
|
Sp_stored_procedures |
列出当前环境可用的所有的存储过程 |
Execute sp_stored_procedures |
|
Sp_tables |
列出当前环境下的表和视图的 |
Execute sp_tables |
自定义存储过程
自定义存储过程根据是否带参数可分为带参数的存储过程和不带参数的存储过程
自定义存储过程的语法
Create procedure 存储过程名
[
@参数1 数据类型[=默认值] [参数类型(output 或input)],
....................................................................,
@参数n 数据类型[=默认值] [参数类型(output 或input)]
]
As
begin
T-SQL语句
End
Go
存储过程的调用语法
Execute 存储过程名 [参数1] [output],....,[参数n] [output]
SQL Server 中还提供以“xp_”开头的扩展存储过程
如:可以调用dos命令的xp_cmdshell存储过程。其语法如下
Execute xp_cmdshell ‘doc命令’[no_output]
其中no_output 不显示存储过程返回的结果
存储过程的优点
1.执行速度快,效率高
2.提高安全性
3.模块式编程
4.减少网络流量
Return关键字在存储过程的作用
作用一:以终止存储过程的执行
作用二:返回存储过程中的数据
注:return只能返回int类型的数据。
存储过程中数据输出方式
方式一:使用return关键字的输出
方式二:使用输出参数的方式输出
存储过程中其数据的接收方式
方式一:return关键字的输出的接收语法
Execute 变量=存储过程名 参数1,....,参数n
方式二:
Execute 存储过程名 参数1 output,....,参数n output
例如:
Create procedure proc_addstu
@name varchar(10),
@age int ,
@sex varchar(2),
@address varchar(50),
@no int output
As
Begin
--向stuinfo表中插入数据
Insert into stuinfo values (@name,@age,@sex,@address)
--调用全局变量并返回数据
Return @@identity
Select @no=stuno from stuinfo where stuname=@name
End
Go
--调用存储过程
Declare @stuid int, @stuno int
Execute @stuid=proc_addstu ‘张三’,20,’男’,‘重庆沙坪坝’,@stuno output
处理错误信息
Raiserror的语法如下
Raiserror (自定义的错误信息,错误的严重级别(值:0-18级),错误的严重状态(值:1-127)
浙公网安备 33010602011771号