sql 分頁儲存過程
支援:多表連線查詢、group by分組查詢等。(多表連線查詢時請指定字段,不要用select *)
返回為一結果集,有乙個輸出引數為記錄總數,配合aspnetpager控制項使用絕配。
create procedure web_pager (
@rowstotal int output, --輸出記錄總數
@tablename varchar(800), --表名
@fieldname varchar(800), --查詢字段
@keyname varchar(200), --索引字段
@pagesize int, --每頁記錄數
@pagenow int, --當前頁
@stringorder varchar(200), --排序條件
@stringwhere varchar(800) --where條件)as
begin
declare @beginrow int
declare @endrow int
declare @templimit varchar(200)
declare @tempcount nvarchar(1000)
declare @tempmain varchar(1000)
set @beginrow = (@pagenow - 1) * @pagesize + 1
set @endrow = @pagenow * @pagesize
set @templimit = 'rows between ' + cast(@beginrow as varchar) +' and '+cast(@endrow as varchar)
--輸出引數為總記錄數
set @tempcount = 'select @rowstotal = count(*) from (select '+@keyname+' from '+@tablename+' where '+@stringwhere+') as my_temp'
execute sp_executesql @tempcount,n'@rowstotal int output',@rowstotal output
--主查詢返回結果集
set @tempmain = 'select * from (select row_number() over ('+@stringorder+') as rows ,'+@fieldname+' from '+@tablename+' where '+@stringwhere+') as main_temp where '+@templimit
execute (@tempmain)
end
sql 儲存過程分頁
create proc myx prpagerecordset querystr nvarchar 1000 keyfield nvarchar 200 pagesize int,pagenumber int as begin declare sqltext as nvarchar 4000 dec...
SQL 儲存過程 分頁
1.俄羅斯儲存過程 的改良版 create procedure pagination1 pagesize int,頁面大小,如每頁儲存20條記錄 pageindex int 當前頁碼 as set nocount on begin declare indextable table id int id...
SQL 分頁儲存過程
create procedure splitpage sql nvarchar 4000 不帶排序語句的sql語句 page int,頁碼 recsperpage int,每頁容納的記錄數 id varchar 255 需要排序的不重複的id號 sort varchar 255 排序欄位及規則 as...