SQL server存储过程

SQL server存储过程

什么是存储过程
存储过程是一个预编译的sql语句 ,编译后可多次使用

优势:
优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次
响应时间上来说有优势,可以给我们带来运行效率提高的好处,且使用存储过程的系统更加稳定

缺点:
维护性较差,相对于简单sql,存储过程并没有什么优势,并且在进行调试时比较困难

调用:
用一个“execute 存储过程名 参数”命令来调用存储过程

实例:
在这里插入图片描述
创建不带参数存储过程

--存储过程
--不带参数存储过程
select * from Books
go
create proc cp_select_books
as
select * from Books


--调用存储过程
exec cp_select_books

带输入参数的存储过程

--带输入参数的存储过程
go
create proc cp_select_Books_ByName
(
    @name nvarchar(50)
)
as
select * from Books where Name like '%'+@name+'%'
--调用存储过程
exec cp_select_Books_ByName 'm'

创建带输入,输出参数,进行模糊查询

--带输入,输出参数
--进行模糊查询,返回记录数,还要返回记录
go
create proc cp_select_books_byNameEx
(
@name nvarchar(50),
@rowCount int out
)
as
select * from Books where name like '%'+@name+'%'
select @rowCount=count(*) from Books where name like '%'+@name+'%'

--调用
--定义一个变量,接收返回值@rowcount
declare @rows int
exec cp_select_books_byNameEx 'boot',@rows out
print @rows

创建一个存储过程,根据名称,第几页,每页显示多少条

--创建一个存储过程,根据名称,第几页,每页显示多少条
--查询满足条件的记录和记录数
go
create proc cp_select_books_fenye
(
@name nvarchar(50),
@pageIndex int,
@pageSize int,
@pageRow int out --输出参数满足条件的行数
)
as
--查询名称是"" 查询第多少页,每页显示多少条
select top (@pageSize) * from Books where id not in
(select top (@pageSize*(@pageIndex-1)) id from Books where name like '%'+@name+'%' order by id) 
and name like '%'+@name+'%' order by id
--满足条件共多少条
select @pageRow=count(*) from Books where name like '%'+@name+'%'
go
declare @Rows int;
exec cp_select_books_fenye '建筑',1,6,@Rows out
print @Rows
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值