除錯儲存過程老是提示「invalid column name ...」,暈倒,檢查到最後發現是字串竟然寫成了"",哈哈,應該是 '',記住了。
在這裡整理了兩個可以用的分頁儲存過程,以備後用。
第一:alter
procedure
consignment
@tablename
varchar(80
) ,@strorder
varchar(50
) ,@pageindex
int=1,
@pagesize
int=15,
@strgetfields
varchar
(200) =
'*',
@output
intoutput
asbegin
declare
@strsql
varchar
(500
)declare
@sql
nvarchar
(1000
)declare
@rbigint
set@sql=n
'select @r=count(*) from '+
@tablename
exec
sp_executesql
@sql
, n
'@r bigint output
',
@routput
set@output=@r
if(
@pageindex=1
)begin
set@strsql='
select top '+
str(
@pagesize)+
''
+@strgetfields+'
from '+
@tablename+'
order by '+
@strorder
endelse
set@strsql='
select top '+
str(
@pagesize)+
''
+@strgetfields+'
from '+
@tablename+'
where ('+
@strorder+'
>= ( select max('+
@strorder+'
) from ( select top '+
str(
@pagesize
*@pageindex)+
'* from '+
@tablename+'
order by '+
@strorder+'
) as temptable)) order by '+
@strorder
select
@strsql
exec
(@strsql
)end
第二:
alter
procedure
allproce
@tablename
varchar
(200
) ,
--表名
@strgetfields
varchar
(200) =
'*
',
--查詢列名
@pageindex
int=
1,
--頁碼
@pagesize
int=
15,
--頁面大小
@strwhere
varchar
(100) =
'',
--查詢條件
@strorder
varchar
(100) =
'',
--排序列名
@intorder
bit=
0,
--排序型別 1為公升序
@countall
bigint
output
--返回紀錄總數用於計算頁面數
asbegin
declare
@strsql
varchar
(500
) --
主語句declare
@strtemp
varchar
(100
) --
臨時變數
declare
@strorders
varchar(50
) --
排序語句
declare
@table
varchar(70
)declare
@sql
nvarchar
(1000
)declare
@rbigint
set@sql=n
'select @r=count(*) from '+
convert
(nvarchar
(200
),@tablename
)exec
sp_executesql
@sql
, n
'@r bigint output
',
@routput
set@countall=@r
if@intorder=0
begin
--為0是公升序
set@strtemp='
>(select max
'set
@strorders='
order by '+
@strorder+'
asc
'end
else
begin
--否則為降序
set@strtemp='
<(select min
'set
@strorders='
order by '+
@strorder+'
desc
'end
if@pageindex=1
--第一頁直接讀出紀錄
begin
if@strwhere=''
begin
set@strsql='
select top '+
str(
@pagesize)+
''
+@strgetfields+'
from '+
@tablename+'
'+
@strorders
endelse
begin
set@strsql='
select top '+
str(
@pagesize)+
''
+@strgetfields+'
from '+
@tablename+'
where '+
@strwhere+'
'+
@strorders
endend
else
begin
set@strsql='
select top'+
str(
@pagesize)+
''
+@strgetfields+'
from '+
@tablename+'
where '+
@strorder+'
'+
@strtemp+'
('
+@strorder+'
)'+'
from (select top '+
str((
@pageindex-1
)*
@pagesize)+
''
+@strgetfields+'
from '+
@tablename+'
'+
@strorders+'
) as temptable ) '+
@strorders
if@strwhere!='
'begin
set@strsql='
select top '+
str(
@pagesize)+
''
+@strgetfields+'
from '+
@tablename+'
where '+
@strorder+'
'+
@strtemp+'
('
+@strorder+'
) '+'
from(select top '+
str((
@pageindex-1
)*
@pagesize)+
''
+@strgetfields+'
from '+
@tablename+'
where '+
@strwhere+'
'+
@strorders+'
) as temptable) where '+
@strwhere+'
'+
@strorders
endend
exec
(@strsql
)
endgo
乙個分頁儲存過程
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...