存储过程
存储过程—就像数据库中运行方法(函数)
和C#里的方法一样,由存储过程名/存储过程参数组成/可以有返回结果。
前面学的if else/while/变量/insert/select 等,都可以在存储过程中使用
优点:
执行速度更快 – 在数据库中保存的存储过程语句都是编译过的
允许模块化程序设计 – 类似方法的复用
提高系统安全性 – 防止SQL注入
减少网络流通量 – 只要传输 存储过程的名称
系统存储过程
由系统定义,存放在master数据库中
名称以“sp”开头或”xp”开头
创建存储过程:
定义存储过程的语法
CREATE PROC[EDURE] 存储过程名
@参数1 数据类型 = 默认值 OUTPUT,
@参数n 数据类型 = 默认值 OUTPUT
AS
SQL语句
参数说明:
参数可选
参数分为输入参数、输出参数
输入参数允许有默认值
EXEC 过程名 [参数]
———————————例—————————————
if exists (select from sys.objects where name=’usp_GroupMainlist1’)
drop proc usp_GroupMainlist1
go
create proc usp_GroupMainlist1
@pageIndex int, —页数
@pageSize int, —条数
@pageCount int output—输出共多少页
as
declare @count int —共多少条数据
select @count =count() from [mainlist] —获取此表的总条数
set @pageCount=ceiling(@count*1.0/@pageSize)
select from
(select ,row_number() over(order by [date of booking] desc) as ‘num’ from [mainlist]) as t
where num between(@pageSize(@pageIndex-1)+1) and @pageSize@pageIndex
order by [date of booking] desc
—————————————————————————————————————————————-
—调用
declare @page int
exec usp_GroupMainlist1 1,100,@page output
select @page
