SQL Server 2012 存储过程

本文介绍了存储过程,包括系统、用户和临时存储过程。详细阐述了无参、带入参、带出参存储过程的语法及使用示例。还说明了修改、查看和删除存储过程的方法,既可用SSMS工具操作,也有对应的SQL语法示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



1.存储过程

存储过程是由过程化SQL语句书写的过程,这个过程经过编译和优化后存储在数据库服务器中,因此称它为存储过程,使用时只要调用即可。使用存储过程可以实现代码的复用、提高运行效率、降低通信流量以及方便实施业务规则。
1.系统存储过程:
SQL Server内置存储过程,物理上存储在Resource中,逻辑上存储在各个数据库的sys架构中。系统存储过程以“sp_”开头。
2.用户存储过程:
用户自定义的存储过程,可以在用户数据库或除了Resource之外的其他系统数据库中创建。
3.临时存储过程:
临时存储过程存储在tempdb临时数据库中,以“#”开头的临时存储过程称为局部临时存储过程,创建后仅对当前用户连接可见,当用户关闭连接时被删除;以“##”开头的临时存储过程称为全局临时存储过程,创建后对任何用户都可见,当最后一个用户会话结束时被删除。


2.无参存储过程

语法格式:

--创建存储过程
CREATE PROC <过程名>
AS
<过程化SQL块>

--使用存储过程
EXEC <过程名>

使用示例:创建getMaleStudent存储过程返回student表中的男同学信息

--创建存储过程
create proc getMaleStudent
as
select *
from student
where Sex='男'

--使用存储过程
exec getMaleStudent

在这里插入图片描述

3.带入参存储过程

语法格式:

--创建存储过程
CREATE PROC <过程名>(<入参1> [,<入参2>]...)
AS
<过程化SQL块>

--使用存储过程
EXEC <过程名> <入参值> [,<入参值>]...

使用示例:创建getStudentBySex存储过程根据性别参数返回对应的学生信息

--创建存储过程
create proc getStudentBySex(@Sex nvarchar(5))
as
select *
from student
where Sex=@Sex

--使用存储过程
exec getStudentBySex '男'

在这里插入图片描述

4.带出参存储过程

语法格式:

--创建存储过程
CREATE PROC <过程名>(<入参1>,<出参1 OUTPUT> [,<入参或出参>]...)
AS
<过程化SQL块>

--使用存储过程
EXEC <过程名> <入参值>,<出参 OUTPUT> [,<入参值或出参>]...

使用示例:创建getStudentNum存储过程查看不同性别的学生数量

--创建存储过程
create proc getStudentNum(@Sex nvarchar(5),@StuNum int output)
as
select @StuNum=count(*)
from student
where Sex=@Sex

--使用存储过程
declare @StuNum int  --定义变量
declare @Sex nvarchar(5) ='男'
exec getStudentNum @Sex ,@StuNum output
select @sex 性别,@StuNum 数量

在这里插入图片描述

5.修改存储过程
  1. 使用SSMS工具
    依次打开数据库,选择“可编程性”,然后选择“存储过程”,右击需要修改的存储过程,选择“修改”,进入查询编辑器,在编辑器中对存储过程进行修改。
    在这里插入图片描述
    点击执行完成存储过程的修改
    在这里插入图片描述
  2. 使用SQL方式
    语法格式:
--修改存储过程
ALTER PROC <过程名>[(<入参1>,<出参1 OUTPUT> [,<入参或出参>]...)]
AS
<过程化SQL块>

使用示例:修改getMaleStudent存储过程查看女学生信息

--修改存储过程
alter proc getMaleStudent
as
select *
from student
where Sex='女'

6.查看存储过程

语法格式:

--查看存储过程属性信息、参数与数据类型
sp_help <存储过程名>

使用示例:使用sp_help查看getStudentNum存储过程

sp_help getStudentNum

在这里插入图片描述

语法格式:

--查看存储过程源代码
sp_helptext <存储过程名>

使用示例:使用sp_helptext查看getStudentNum存储过程

sp_helptext getStudentNum

在这里插入图片描述



7.删除存储过程
  1. 使用SSMS工具删除存储过程
    依次打开数据库,选择“可编程性”,然后选择“存储过程”,右击需要修改的存储过程,选择“删除”
    在这里插入图片描述
    进入删除对象对话框,点击确定即可完成存储过程的删除。
    在这里插入图片描述

  2. 使用SQL方式删除存储过程
    语法格式:

DROP PROC <存储过程名>

使用示例:删除getStudentBySex存储过程

drop proc getStudentBySex

在这里插入图片描述



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值