SQL笔记__分页存储过程

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


-- 分页存储过程ByTB_TIR_InitialTobacco_Pattrern_NIC
--
Table变量写法
--
PoweredBy:CHENQP
--
参数说明:@pagesize每页要取的记录数
--
@pageindex第几页
--
@docount标志true则取记录数,false则返回记录集
--
调用说明:例如:第一页取8条记录集
--
EXECUTEusp_TBTIRInitialTobaccoPattrernNIC_ByPager1,8,false
ALTER procedure [ dbo ] . [ usp_TBTIRInitialTobaccoPattrernNIC_ByPager ]
(
@pagesize int ,
@pageindex int ,
@docount bit )
as
set nocount on
if ( @docount = 1 )
select count (I_SortID) from TB_TIR_InitialTobacco_Pattrern_NIC
else
begin
declare @indextable table (id int identity ( 1 , 1 ),nid int )
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound = ( @pageindex - 1 ) * @pagesize
set @PageUpperBound = @PageLowerBound + @pagesize
set rowcount @PageUpperBound
insert into @indextable (nid)
select I_SortID from TB_TIR_InitialTobacco_Pattrern_NIC
order by I_SortID desc

select O. * from TB_TIR_InitialTobacco_Pattrern_NICO, @indextable t
where O.I_SortID = t.nid
and t.id > @PageLowerBound and t.id <= @PageUpperBound order by t.id
end
set nocount off



你可能感兴趣的:(sql,Go)