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...