存储过程的创建与调用

含义:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,成功创建后可多次调用。

优点:进行多次查询时,存储过程比SQL语句执行要快。

调用的方法:EXEC 存储过程名称 参数

具体事例:

两个表,分明为books,booktypes
在这里插入图片描述表中字段:id,name,remark,typeid,typename
在这里插入图片描述
表中字段:id,name,nums

1:不带参数的存储过程的创建和调用
–创建存储查询数据

create proc cp_select_book_byName
as
  select * from books

``--调用存储过程
  exec cp_select_book_byName
`

2:带输入参数的存储过程的创建和调用

go
create proc cp_select_book_byNamecs
(
 @name varchar(50)
)
as
 select * from books where name like '%'+@name+'%'

--调用
 exec cp_select_book_byNamecs 'm'

在这里插入图片描述

3:带输出参数的存储过程的创建和调用
–根据名称查询,返回记录,同时返回记录数

create proc cp_select_byNameExt(
    @name varchar(50),
	@roccordRows int out

)
as
  select * from books where name like '%'+@name+'%'
  select @roccordRows=COUNT(*) from books
--调用
--定义一个变量,接收返回参数@roccordRows的值
declare @rs int 
exec cp_select_byNameExt'三国',@rs out
print '查询的记录数是:'+convert(varchar(50),@rs)

在这里插入图片描述
在这里插入图片描述

4:简单的分页的存储过程的创建和调用
–根据名称,页码,每页显示条数 输入参数
–返回查询条件的总记录数 输出参数
–显示查询结果

create proc cp_select_count(
  @name varchar(50),
  @pageint int,
  @pageSize int,
  @roccordRows int out
)
as
select top (@pageSize) * from books 
where id not in(
select top (@pageSize*(@pageint-1)) id 
from books where name like '%'+@name+'%'
order by id
)
and name like  '%'+@name+'%' order by id 
select @roccordRows=COUNT(*) from books where name like  '%'+@name+'%'

--调用
declare @rs int 
exec cp_select_count'三国',1,5,@rs out
print '查询的记录数是:'+convert(varchar(50),@rs)

在这里插入图片描述
在这里插入图片描述

删除语句:
drop proc 存储过程名称

猜你喜欢

转载自blog.csdn.net/weixin_47975033/article/details/106255238