修改的乙個分頁儲存過程。 嘻嘻

2022-03-02 23:25:07 字數 1906 閱讀 1310

/*

released date:2007-5-30

procname:up_getrecordbypage

*/--check up_getrecordbypage

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[up_getrecordbypage]') and objectproperty(id, n'isprocedure') = 1)

drop procedure [dbo].[up_getrecordbypage]

gocreate proc [dbo].[up_getrecordbypage]

@tblname varchar(255), -- 表名

@fldname varchar(255), -- 排序字段(支援多欄位,建議建索引) 比如 id asc ,addtime desc

@pagesize int = 10, -- 頁尺寸

@pageindex int = 1, -- 頁碼

--@isrecount bit = 0, -- 返回記錄總數, 非 0 值則返回

@totalpages int output ,--輸出引數,返回總頁數

--@ordertype bit = 0, -- 設定排序型別, 非 0 值則降序

@strwhere varchar(1000) = '' -- 查詢條件 (注意: 不要加 where)

asbegin

declare @strsql nvarchar(4000)

declare @rowscount int

if ltrim(rtrim(@strwhere))=''

set @strwhere=' 1=1 '

--obtain rowscount

set @strsql='select @totalrecords=count(*) from '+@tblname+' where '+@strwhere

execute sp_executesql @strsql,n'@totalrecords int output ',@rowscount output

select @totalpages=ceiling((@rowscount+0.0)/@pagesize)

if @pageindex<=0

set @pageindex=1

if @pageindex > @totalpages

set @pageindex=@totalpages

set @strsql='select * from (select top (@pageindex*@pagesize) * ,row_number() over(order by '+@fldname+') as rownumber from '+@tblname+' where '+@strwhere+' ) t where t.rownumber>=((@pageindex-1)*@pagesize+1)'

--print @strsql

exec sp_executesql @strsql,n'@pageindex int, @pagesize int',@pageindex,@pagesize

end

@fldname是排序字段不是selectlist欄位【*】,輸入形式 id asc,addtime desc

去掉2個引數ordertype,isrecount。ordertype在@fldname體現,isrecount在原來的儲存過程沒有多大意義。新增了乙個輸出引數@totalpages

strwhere 不用加where

乙個分頁儲存過程

page language c import namespace system.data import namespace system.data.sqlclient 訂單號 服務專案 預訂日期 操作人員 分配狀態 databinder.eval container.dataitem,offerid...

乙個分頁儲存過程

louje 分頁儲存過程 create procedure usp page pagesize int,頁大小 pageno int,頁號 tablename nvarchar 500 表名 keyword nvarchar 20 主鍵 fieldname nvarchar 2000 要顯示的欄位名...

乙個分頁儲存過程

create procedure sp page tb varchar 50 表名 col varchar 50 按該列來進行分頁 coltype int,col 列的型別,0 數字型別,1 字元型別,2 日期時間型別 orderby bit,排序,0 順序,1 倒序 collist varchar...