分頁儲存過程
**create
procedure
[dbo].
[getrecordwithpage
]@fieldstype
nvarchar
(1000
),
--欄位列表(帶型別),用於@t表變數的字段宣告,如:photoid int,userid int,phototitle nvarchar(50)
@fieldslist
nvarchar
(500
),
--欄位列表(不帶型別),用於分頁部分讀取@t表變數的字段,也可使用*代替,但效能會下降,如:photoid ,userid ,phototitle
@selectsrting
nvarchar
(2000
), --
向@t表變數中讀取記錄的select語句
@resultorderby
nvarchar
(200
), --
對分頁結果進行排序的字段,如:公升序'photoid asc'、降序'photoid desc',注意:如果是降序的話要在selectsrting和此處都加desc
@pagesize
int,
--頁尺寸,0表示返回所有行
@currentpage
int,
--當前頁,首頁為1
@recordcount
intoutput
--非0值則返回記錄總數
asbegin
declare
@strsql
varchar
(4000
)declare
@sql
nvarchar
(1000
)set
@strsql='
declare @t table('+
@fieldstype+'
);'set@strsql
=@strsql+'
insert into @t '+
@selectsrting+'
;'set@sql
=@strsql+'
select @aa=count(*) from @t;
'exec
sp_executesql
@sql,n'
@aa int output',
@recordcount
output;
if@pagesize=0
set@strsql
=@strsql+'
select '+
@fieldslist+'
from @t;
'else
if@currentpage=1
set@strsql
=@strsql+'
select top('+
str(
@pagesize)+
')'+
@fieldslist+'
from @t;
'else
begin
set@strsql
=@strsql+'
select top('+
str(
@pagesize)+
')'+
@fieldslist+'
from (select top('+
str(
@pagesize
*@currentpage)+
')'+
@fieldslist+'
, row_number() over (order by '+
@resultorderby+'
)'set@strsql
=@strsql+'
as rownumber from @t
'set
@strsql
=@strsql+'
) as r where r.rownumber >'+
str(
@pagesize*(
@currentpage-1
))+';
'end
exec
(@strsql
)end
分頁函式:
**create
function
[dbo].
[f_conformationpage
](
@pagenum
int,
--頁碼
@pagesize
int,
--頁面大小
@orderexpression
nvarchar(50
),--
排序表示式如:'id desc'
@oldsql
nvarchar
(max
) --
待分頁的sql語句
) returns
nvarchar
(max
) --
待分頁sql語句
asbegin
declare
@newsql
nvarchar
(max
) set
@newsql=''
declare
@beginpage
asnvarchar
(100
) --
開始數字
set@beginpage=(
@pagenum
*@pagesize)-
(@pagesize-1
)declare
@endpage
nvarchar
(100
)set
@endpage
=@beginpage
+@pagesize-1
set@newsql='
select * from (
select row_number( ) over( order by '+
@orderexpression+'
) as rownum,* from ('+
@oldsql+'
) as aa) as yy
where rownum between '+
@beginpage+'
and '+
@endpage+'
order by '+
@orderexpression
return
@newsql
end
乙個分頁儲存過程
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...