含义:存储过程是一个预编译的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 存储过程名称