SQL2005分頁儲存過程

2022-07-30 20:27:17 字數 2676 閱讀 5891

--  author : sql2005分頁儲存過程htl258(tony)

--  date   : 2009-09-22 13:00:50

--  version: microsoft sql server 2008 (sp1) - 10.0.2531.0 (intel x86)

--  mar 29 2009 10:27:29

--  enterprise evaluation edition on windows nt 5.1 (build 2600: service pack 2)

--建立測試表

if object_id('[tb]') is not null

drop table [tb]

gocreate table [tb]([col] nvarchar(10))

--填充資料

insert tb

select top 26 col1=char(64+row_number()over(order by getdate()))

from sys.objects

--建立分頁的儲存過程

if object_id('[sp_page]') is not null

drop proc [sp_page]

gocreate proc sp_page

@tablename nvarchar(50),--表名

@pagerow int=0,--每頁顯示的行數(0為全部)

@pagenow int=1, --要顯示第幾頁(預設為)

@ordercol varchar(50)=null, --排序字段

@order bit=0 --排序規則0順序,1倒序

asdeclare @s nvarchar(max)

set @s='

with t as

select

rownum=row_number()over(order by '+isnull(@ordercol,'getdate()')+

case @order when 1 then ' desc' else ' asc' end+'),

from '+@tablename +'

select *

from t'

if @pagerow>0

set @s=@s+'

where rownum between '+ltrim(@pagerow*(@pagenow-1)+1)+'

and '+ltrim(@pagerow*@pagenow)

exec(@s)

go--返回tb表每頁行第頁的記錄

exec sp_page 'tb',6,2

rownum               col

7                    g

8                    h

9                    i

10                   j

11                   k

12                   l

(6 行受影響)

exec sp_page 'tb',6,2,'col',2

rownum               col

7                    t

8                    s

9                    r

10                   q

11                   p

12                   o

(6 行受影響)

--返回所有記錄

exec sp_page 'tb'

rownum               col

1                    a

2                    b

3                    c

4                    d

5                    e

6                    f

7                    g

8                    h

9                    i

10                   j

11                   k

12                   l

13                   m

14                   n

15                   o

16                   p

17                   q

18                   r

19                   s

20                   t

21                   u

22                   v

23                   w

24                   x

25                   y

26                   z

SQL2005 分頁儲存過程

最近在使用sqlserver2005的資料庫編碼,查到有乙個row number order by 字段 的函式,通過該函式進行分頁非常的方便,請大家看看我寫的分頁儲存過程。分頁儲存過程 create procedure dbo proc testpage 表名 tablename nvarchar...

sql 2005分頁儲存過程

tblname varchar 255 表名 fldname varchar 255 欄位名 ordertype bit 0,設定排序型別,非 0 值則降序 iscount bit 0,設定排序型別,非 0 值則降序 strwhere varchar 3000 查詢條件 注意 不要加 where s...

SQL 2005 儲存過程分頁

create procedure dbo p pagetest sql nvarchar max sql語句不包括排序 curpage int,當前頁 pagerows int,頁面尺寸 order nvarchar 20 排序字段 ordertype nvarchar 10 排序型別倒序desc或...