SQL Server 2005 分頁儲存過程

2021-04-18 03:14:57 字數 1933 閱讀 3198

支援:多表連線查詢、group by分組查詢等。(多表連線查詢時請指定字段,不要用select *)

返回為一結果集,有乙個輸出引數為記錄總數,配合

aspnetpager控制項使用絕配。

create

procedure

web_pager (

@rowstotal

intoutput,            

--輸出記錄總數

@tablename

varchar

(800

),        

--表名

@fieldname

varchar

(800

),        

--查詢字段

@keyname

varchar

(200

),            

--索引字段

@pagesize

int,                    

--每頁記錄數

@pagenow

int,                    

--當前頁

@stringorder

varchar

(200

),        

--排序條件

@stringwhere

varchar

(800

)        

--where條件)as

begin

declare

@beginrow

intdeclare

@endrow

intdeclare

@templimit

varchar

(200

)declare

@tempcount

nvarchar

(1000

)declare

@tempmain

varchar

(1000

)set@beginrow=(

@pagenow-1

) *@pagesize+1

set@endrow

=@pagenow

*@pagesize

set@templimit='

rows between '+

cast

(@beginrow

asvarchar) +

'and '+

cast

(@endrow

asvarchar

)--輸出引數為總記錄數

set@tempcount='

select @rowstotal = count(*) from (select '+

@keyname+'

from '+

@tablename+'

where '+

@stringwhere+'

) as my_temp

'execute

sp_executesql 

@tempcount,n'

@rowstotal int output',

@rowstotal

output

--主查詢返回結果集

set@tempmain='

select * from (select row_number() over ('+

@stringorder+'

) as rows ,'+

@fieldname+'

from '+

@tablename+'

where '+

@stringwhere+'

) as main_temp where '+

@templimit

execute

(@tempmain

)end

SqlServer2005分頁方案

插入測試資料200w條,可能會很久 create table student id int primary keyidentity 1 1 name nvarchar 50 age int insert student name,age values name 18 while select cou...

sqlserver2005 分頁 SQL語句

1.分頁方案一 利用not in和select top分頁 語句形式 select top 10 from testtable where id not in select top20id from testtable order by id order by id select top 頁大小 f...

SQL Server 2005分頁儲存過程

剛開始學習分頁儲存過程的時候看到有很多長篇大論的 看起來很亂,現在有乙個很好的分頁儲存過程,分享一下 alter procedure dbo pr page helper top int null,返回前n位記錄 1 全部 ascordesc bit null,1 desc 0 asc column...