存储过程

1、概念
存储过程就是编译好了的一些sql语句。

1)存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。

2)可保证数据的安全性和完整性。
通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。
通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。

3)可以降低网络的通信量。
存储过程主要是在服务器上运行,减少对客户机的压力。

4)存储过程可以接收参数、输出参数、返回单个或多个结果集以及返回值,也可以向程序返回错误原因。

5)存储过程可以包含程序流、逻辑以及对数据库的查询,所以可以实体封装和隐藏数据逻辑。

代码示例:

定义存储过程:

create proc usp_StudentByGenderAge
@gender nvarchar(10) [='男'],
@age int [=30]
as
select * from MyStudent where FGender=@gender and FAge=@age

调用存储过程:

exec usp_StudentByGenderAge //调用默认参数

exec usp_StudentByGenderAge '女',50 //调用指定参数

exec usp_StudentByGenderAge @gender'女',@age50 //指定变量名

修改存储过程:

alter proc usp_StudentByGenderAge
@gender nvarchar(10) [='男'],
@age int [=30],
--加output表示该参数是需要在存储过程中赋值并返回的
@recorderCount int output 
as
select * from MyStudent where FGender=@gender and FAge=@age
set @recorderCount=(select count(*) from MyStudent where FGender=@gender and FAge=@age)

调用修改后的存储过程:

declare @count int
--@count是当做参数传给usp_StudentByGenderAge,当存储过程执行完毕以后,将得到的结果返回给@count
exec usp_StudentByGenderAge @recorderCount=@count output
print @count
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值