数据库存储过程

文章目录

 


前言

实际项目中会遇到很多复杂或重复的逻辑,这时候会用到存储过程,今天就来记录一下,存储过程的使用方法,以免忘记


存储过程的好处

1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。

2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。

3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。

小结:总之存储过程是好东西,在做项目时属于必备利器,下面介绍存储过程的基本语法。

 

1.下面是一个简单的查询存储过程

--判断否存在改存储过程,如存在则删除

if exists (select * from sys.procedures where name='SelQ')
drop proc SelQ
go

--简单的查询存储过程:一个简单的查询存储过程
create proc SelQ 
as
    select * from Student
go
exec SelQ

--带参数的存储过程 :一个根据ID删除的存储过程

if exists (select * from sys.procedures where name='Del')
drop proc Del
go
create proc Del(@BookID int)
as
    delete from BookInfo where BookID=@BookID
go
exec Del 4

2.存储过程与时间联合使用

代码如下(示例):

 

begin tran表示开始事务,

commit tran表示提交事务,

rollback tran表示回滚事物

CREATE PROCEDURE [dbo].[Finished]
@Id VARCHAR(50),
@uId VARCHAR(50),
@money int 
AS
BEGIN TRAN
BEGIN TRY
declare @user1 select money  from user where Id = @Id
if(@user1 > @money)
BEGIN
update user set money = money - @money where Id = @Id
update user set money = money + @money where Id = @uId
​​​​​​END
END TRY
BEGIN CATCH

ROLLBACK TRAN;

END CATCH

COMMIT TRAN;

GO

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值