create
procedure spgetpageofrecords
@pagesize
int=
20, --
分頁大小
@currentpage
int , --
第幾頁@columns
varchar(1000) ='*
', --
需要得到的字段
@tablename
varchar(100), --
需要查詢的表
@condition
varchar(1000) =
'', --
查詢條件, 不用加where關鍵字
@asccolumn
varchar(100) =
'', --
排序的欄位名 (即 order by column asc/desc)
@bitordertype
bit=
0, --
排序的型別 (0為公升序,1為降序)
@pkcolumn
varchar(50) =
''--
主鍵名稱
asbegin
declare
@strtemp
varchar(300)
declare
@strsql
varchar(5000) --
該儲存過程最後執行的語句
declare
@strordertype
varchar(1000) --
排序型別語句 (order by column asc或者order by column desc)
begin
if@bitordertype=1
--降序
begin
set@strordertype='
order by '+
@asccolumn+'
desc
'set
@strtemp='
<(select min
'end
else
--公升序
begin
set@strordertype='
order by '+
@asccolumn+'
asc'
set@strtemp='
>(select max
'end
if@currentpage=1
--第一頁
begin
if@condition
!=''
set@strsql='
select top '+
str(@pagesize)+''
+@columns+'
from '+
@tablename+'
where '+
@condition
+@strordertype
else
set@strsql='
select top '+
str(@pagesize)+''
+@columns+'
from '+
@tablename
+@strordertype
endelse
--其他頁
begin
if@condition
!=''
set@strsql='
select top '+
str(@pagesize)+''
+@columns+'
from '+
@tablename+'
where '+
@condition+'
and '+
@pkcolumn
+@strtemp+'
('+@pkcolumn+'
)'+'
from (select top '+
str((@currentpage
-1)*
@pagesize)+''
+@pkcolumn+'
from '+
@tablename+'
where '+
@condition
+@strordertype+'
) as tabtemp)'+
@strordertype
else
set@strsql='
select top '+
str(@pagesize)+''
+@columns+'
from '+
@tablename+'
where '+
@pkcolumn
+@strtemp+'
('+@pkcolumn+'
)'+'
from (select top '+
str((@currentpage
-1)*
@pagesize)+''
+@pkcolumn+'
from '+
@tablename
+@strordertype+'
) as tabtemp)'+
@strordertype
endend
exec (@strsql)
end執行**如下:
--test employees table on northwind database
exec spgetpageofrecords 5, 2, '
employeeid, lastname, firstname, title, city, region, country
', '
employees
', '', '
employeeid
', 0, '
employeeid'--
test customers table on northwind database
exec spgetpageofrecords 10, 6, '
customerid, companyname, contactname, contacttitle, address, city, region, country
', '
customers
', '', '
customerid
', 0, '
customerid
'
SQL 分頁通用儲存過程
這是乙個通用的分頁儲存過程,利用的是sql的系統游標 這種效率並不是很好 create proc sp pageview sql ntext,要執行的sql語句 pagecurrent int 1,pagesize int 10,pagecount int output asset nocount ...
Sql通用分頁儲存過程
這個是乙個基於framework平台,c 語言與sql建立分頁儲存過程 1.使用dbhelpersql幫助類 2,ado連線資料庫 3,通用儲存過程 create proc dbo p paging tablename varchar 8000 表名 檢視名 pagesize int 10,頁面顯示...
通用儲存過程 分頁儲存過程
名稱 spall returnrows 輸入 輸出 呼叫 exec spall returnrows select from 表名 頁號,返回記錄數,主鍵 排序字段 spall returnrows select from all categories 2,10,id id 說明 百萬級 通用儲存過...