存储过程学习以及扩展
程序员文章站
2022-05-30 23:19:12
...
概念:在SQL Server中,可以定义子程序存放在数据库中,这样的子程序称为存储过程,存储过程是数据库对象之一。使用存储过程的特点如下:
- 存储过程在服务器端运行,执行速度快。
- 存储过程执行一次后,其执行规划主驻留在高速缓存存储器,在以后的操作中,只需从高速缓存存储器中调用已经编译好的二进制代码执行,提高了系统性能。
- 确保数据库的安全。使用存储过程可以完成所有的数据库操作。
- 降低网络负载,提高效率。
- 可以接受用户参数,亦可返回参数。
类型:
- 系统存储过程(名字以“sp_”为前缀,存储在master里)
- 可供使用的系统存储过程及其语法形式如下:
- sp_help:用于显示存储过程的参数及其数据类型,sp_help[[@objname=]name]参数name为要查看的存储过程的名称。
- sp_helptext:用于显示存储过程的源代码,sp_helptext[[@objname=]name]参数name为要查看的存储过程的名称。
- sp_depends:用于显示和存储过程相关的数据库对象,sp_depends[@objname=]'object',参数object为要查看依赖关系的存储过程的名称。
- 可供使用的系统存储过程及其语法形式如下:
- 本地存储过程(存储在用户定义的数据库中)
- 扩展存储过程(名字都以“xp_”为前缀,存储在master里)
- 临时存储过程(名字以#开头)
- 注意:用户定义存储过程不能以sp_或xp_开头。
创建存储过程
- 创建不带参数的存储过程
- 语法:
use 数据库名
create proc[edure] 存储过程名 --定义过程名
as
sql 语句...... --执行操作,实现某种功能
go
- 执行不带参数的存储过程语法
exec 存储过程名
- 修改存储过程
- 存储过程可以根据用户的要求或者基表的改变而改变。使用alter procedure语句可以更改先前通过执行create procedure语句创建的存储过程。
- 语法:
use 数据库名
alter proc[edure] 存储过程名 --定义过程名
as
sql 语句 --执行操作
go
删除存储过程:drop命令可以将一个或多个存储过程或存储过程组从当前数据库删除,其语法形式如下:
drop procedure 存储过程名1,......,存储过程名n
- 创建带参数的存储过程
- 语法:
use 数据库名
create proc[edure] 存储过程名 --定义过程名
@变量名1 数据类型 --定义输入参数
......
@变量名n 数据类型
as
sql 语句 --执行操作
go
-
- 执行带输入/通配符参数的存储过程
- 语法:
- 执行带输入/通配符参数的存储过程
exec 存储过程名
@变量名1=变量值,
......
@变量名n=变量值
上一篇: 使用VS2019编译ffmpeg
下一篇: 连续子数组的最大和.md