很强的分页存储过程,速度超快!

CREATE procedure  dbo.pager
(
--取得当前页数
@pagenum int,
--取得每页记录数
@rowcount int,
--返回记录总数
@count int output
)
AS

--定义起始记录ID
declare @start int
--定义结束记录ID
declare @end int
--设置起始记录ID,与当前页数和每页记录数相关。
set @start=@pagenum*@rowcount
--设置结束记录ID,与当前页数和每页记录数相关,起始记录ID减去每页记录数即为当前页的记录数。
set @end=@start-@rowcount
--设置选取记录数
set rowcount @start
--将选取的记录插入临时表
select *  into #t1  from  myTable

--设置删除的记录数
set rowcount @end
--不是第一页时删除表,第一页时不删除表中数据。
if @end>0
--删除临时表中不必要的数据
delete #t1

--不限制选取的记录数
set rowcount 0
--显示临时表中的数据
select * from #t1

--declare @count int
select @count=count(*)  from  myTable

GO



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/westjava/archive/2009/05/31/4227545.aspx

你可能感兴趣的:(.net,Blog,Go)