通過儲存過程實現分頁

2021-04-12 18:14:44 字數 1378 閱讀 3567

create procedure [dbo].[commonpageselect]

(@sqlwhere varchar(1000)='', --查詢條件

@pagenum int=20,--每頁的記錄數

@beginline int=1, --第幾頁,預設第一頁

@sqltable varchar(5000),--要查詢的表或檢視,也可以一句sql語句

@sqlcolumn varchar(4000),--查詢的字段

@sqlpk varchar(50),--主鍵

@sqlorder varchar(200),--排序

@count int=0 output)as

set nocount on

declare @pagelowerbound int

declare @pageupperbound int

declare @sqlstr nvarchar(2000)

--獲取記錄數

if @beginline=1 --可根據實際要求修改條件

begin

set @sqlstr=n'select @scount=count(1) from '+@sqltable+' where 1=1'+@sqlwhere

exec sp_executesql @sqlstr,n'@scount int output',@count output

end--print @count

/**/

set @pagelowerbound=(@beginline-1)*@pagenum

set @pageupperbound=@pagelowerbound+@pagenum

create table #pageindex(id int identity(1,1) not null,nid int)

set rowcount @pageupperbound

set @sqlstr=n'insert into #pageindex(nid) select '+@sqlpk+' from '+@sqltable+' where 1=1 '+@sqlwhere+@sqlorder

exec sp_executesql @sqlstr

set @sqlstr='select '+@sqlcolumn+' from '+ @sqltable +' inner join #pageindex p on '+@sqlpk+'=p.nid and (p.id>'+str(@pagelowerbound)+') and (p.id<='+str(@pageupperbound)+')' +@sqlorder

exec sp_executesql @sqlstr

set nocount off

drop table #pageindex 

通過儲存過程分頁

asp.net中實現分明功能,主要運用的是aspnetpager,再呼叫儲存過程進行分頁,該方法適合運用的範圍非常廣,不錯,set ansi nulls on set quoted identifier on goalter procedure dbo getpagerdata 表名 tbname ...

儲存過程實現分頁

一 create procedure dbo basic pagination2000 tblname varchar 255 表名 fidlelist varchar 2000 要查詢字段 fldname varchar 255 排序字段 pagesize int,頁尺寸 pageindex in...

儲存過程實現分頁

一 create procedure dbo basic pagination2000 tblname varchar 255 表名 fidlelist varchar 2000 要查詢字段 fldname varchar 255 排序字段 pagesize int,頁尺寸 pageindex in...