alterproc
proc_getrecordfrompage
@tblname
varchar(255), --
表名@fldname
varchar(255), --
欄位名@pagesize
int=
1, --
頁尺寸@pageindex
int=
1, --
頁碼@iscount
bit=
0, --
返回記錄總數, 非0 值則返回
@ordertype
bit=
1, --
設定排序型別, 非0 值則降序
@strwhere
varchar(2000) =
''--
查詢條件(注意: 不要加where)
asdeclare
@strsql
varchar(6000) --
主語句declare
@strtmp
varchar(1000) --
臨時變數
declare
@strorder
varchar(500) --
排序型別
if@ordertype!=0
begin
set@strtmp='
<(select min
'set
@strorder='
order by ['+
@fldname+'
] desc
'end
else
begin
set@strtmp='
>(select max
'set
@strorder='
order by ['+
@fldname+'
] asc
'end
set@strsql='
select top '+
str(@pagesize) +
'* from ['+
@tblname+'
] where ['+
@fldname+'
]'+@strtmp+'
(['+@fldname+'
]) from (select top '+
str((@pageindex
-1)*
@pagesize) +'[
'+@fldname+'
] from ['+
@tblname+'
]'+@strorder+'
) as tbltmp)'+
@strorder
if@strwhere
!=''
set@strsql='
select top '+
str(@pagesize) +
'* from ['+
@tblname+'
] where ['+
@fldname+'
]'+@strtmp+'
(['+@fldname+'
]) from (select top '+
str((@pageindex
-1)*
@pagesize) +'[
'+@fldname+'
] from ['+
@tblname+'
] where '+
@strwhere+'
'+@strorder+'
) as tbltmp) and '+
@strwhere+'
'+@strorder
if@pageindex=1
begin
set@strtmp=''
if@strwhere
!=''
set@strtmp='
where ('+
@strwhere+'
)'set@strsql='
select top '+
str(@pagesize) +
'* from ['+
@tblname+'
]'+@strtmp+'
'+@strorder
endif
@iscount!=0
set@strsql='
select count('+
@fldname+'
) as total from ['+
@tblname+'
]'exec (@strsql)--
呼叫儲存過程, 表名 欄位名 顯示條數,第幾頁
exec proc_getrecordfrompage '
customer
','sale_customerid
',1,1
select
*from customer
通用儲存過程 分頁儲存過程
名稱 spall returnrows 輸入 輸出 呼叫 exec spall returnrows select from 表名 頁號,返回記錄數,主鍵 排序字段 spall returnrows select from all categories 2,10,id id 說明 百萬級 通用儲存過...
通用分頁儲存過程
create procedure sp page strtable varchar 50 表名 strcolumn varchar 50 按該列來進行分頁 intcoltype int,strcolumn列的型別,0 數字型別,1 字元型別,2 日期時間型別 intorder bit,排序,0 順序...
通用分頁儲存過程
set quoted identifier on goset ansi nulls off go declare p1 int set p1 null exec sp pageview tbname n v question list fieldkey n id pagecurrent 3,page...