SQLserver中存储过程的应用

SQL中的存储过程可以提高性能、增强安全性和简化复杂操作。创建存储过程包括无参和有参传递,有参传递还能返回值。无参存储过程如查询平均分,有参如按性别和姓名查询学生信息,有返回值的则用于获取特定学生的课程成绩。使用时需定义参数并可能需指定output关键字。
摘要由CSDN通过智能技术生成

在SQL中,存储过程类似于编程语言的函数,即当创建一个存储过程之后便可以在接下来任何类似的操作是直接调用存储过程

那么我们创建存储过程的优势是什么呢:

1.提高性能:存储过程将SQL语句封装在一起,降低了数据传输的成本,减少执行时间。

2.提高安全性:通过存储过程,可以访问数据的特定接口,从而控制对数据库的访问

3.简化复杂操作:计算、逻辑和业务规划等重复性较高的动作时,使用存储结构可以保障数据的一致性、完整性、可靠性。

下面介绍存储过程的创建以及使用步骤

(1)无参传递:即主程序不需要参数传递进去就能执行

create procedure 存储过程名称 as 操作命令
以创建一个查询学生成绩平均分的存储过程为例

create procedure pjf as
select 成绩表.学号,姓名,avg(成绩) as 平均分 from 
成绩表 join 学生表 on 学生表.学号=成绩表.学号 group by 成绩表.学号,姓名

此时就创建好了一个名为“pjf”的存储过程,此时只要我们选择运行该存储过程就可以得到关于学生平均分的一个表格。

下面展示无参传递时使用存储过程的代码

execute pjf

(2)有参传递:通过输入参数使存储过程输出不同结果(实用性,灵活性更强)

create procedure 存储过程名称 @参数名称 参数数据类型 
as 操作命令(其中操作命令需要使用参数传入使输出结果改变)

下面列举通过学生性别和姓名查询学生表当中学生信息的存储过程的建立

create procedure xbxm @xb char(2),@xm nchar(6) as 
select*from 学生表 where 性别=@xb and left(姓名,1)=@xm

其中需要注意的是:在SQLserver中定义参数时要求参数名以@为起始并且具有唯一性

当我们完成有参存储过程的建立之后在使用它时,我们需要在使用的时候将该存储过程需要的参数输入完成查询,例如

execute xbxm '女','李'

查询结果展示

 (3)有参传递并且将形参或者实参返回

create procedure 存储过程名称 @参数名称1 参数数据类型,@参数名称2 参数数据类型 output as 操作命令
此处需要注意,只有需要返回的参数才跟一个output,正常输入且不需要返回的参数不用跟

下面举例输入学生学号和课程名称返回该学生的课程成绩

create procedure 输出成绩 @xh nchar(6),@kch nchar(6),@cj int output as
select @cj=成绩 from 学生成绩课程表 where 学号=@xh and 课程号=@kch

注意!!!:一定是需要返回的参数才跟output

此时使用有返回值的参数的存储过程的代码为

declare @cj int
execute 输出成绩 '001','D001',@cj output
print @cj


使用该存储过程时的注意事项为:
需要提前定义返回参数,并且在execute语句后面在返回参数之后添加output
使用print打印返回的参数值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值