乙個sql server2005分頁的儲存過程

2021-08-29 04:25:22 字數 4040 閱讀 6335

--sql server

分頁語句 --

首先建立乙個測試用的表,並且插入一些測試資料 if

exists

(select

*from sysobjects where

name

='test'

)drop

table test go

create

table test (

id int

primary

keyidentity

(1,1),

name

varchar

(20))

go insert

into test values

('aaa'

)insert

into test values

('bbb'

)insert

into test values

('vvv'

)insert

into test values

('fff'

)insert

into test values

('eee'

)insert

into test values

('ggg'

)insert

into test values

('ddd'

)insert

into test values

('sss'

)insert

into test values

('ttt'

)insert

into test values

('555'

)insert

into test values

('uyuu'

)insert

into test values

('vvjhgjv'

)insert

into test values

('ffghfgdf'

)insert

into test values

('fsdfsdf'

)insert

into test values

('rewrew'

)insert

into test values

('fsdfsd'

)insert

into test values

('gfdgf'

)insert

into test values

('ttgsdsdbt'

)insert

into test values

('fdsfdsaf'

)insert

into test values

('ghfdsfs'

)insert

into test values

('vvvhgfhg'

)insert

into test values

('fdsfsgffff'

)insert

into test values

('eeehgfhjgf'

)insert

into test values

('ggghgjgf'

)insert

into test values

('dddfdsafdd'

)insert

into test values

('sssfdsfds'

)insert

into test values

('jhkjkjttt'

)select

*from test

執行結果:

id name

1   aaa

2   bbb

3   vvv

4   fff

5   eee

6   ggg

7   ddd

8   sss

9   ttt

10 555

11 uyuu

12 vvjhgjv

13 ffghfgdf

14 fsdfsdf

15 rewrew

16 fsdfsd

17 gfdgf

18 ttgsdsdbt

19 fdsfdsaf

20 ghfdsfs

21 vvvhgfhg

22 fdsfsgffff

23 eeehgfhjgf

24 ggghgjgf

25 dddfdsafdd

26 sssfdsfds

27 jhkjkjttt --

建立乙個簡單的儲存過程來實現分頁: if

exists

(select

*from sysobjects where

name

='proc_page'

)drop

proc proc_page go

create

proc proc_page

@num int

=10,

-- 此儲存過程接收兩個引數,第乙個引數為每頁顯示多少條記錄

,預設為

10 條。

@page int

=1--

第二個引數為顯示第幾頁,預設為第

1 頁。 as

if((

select

count

(*)from test)-(@page-1)*(@num)<=0)

-- 判斷如果超出總行數的範圍則提示使用者

print

' 已超出最大頁數!請縮小要顯示頁號或者減少每頁要顯示的行數!'

else

select

top(@num)

*from

(select

top((

select

count

(*)from test)-((@page-1)*(@num)))

*from test order

by id desc

)as a order

by id ascgo

呼叫不帶引數的,預設顯示第一頁,每頁

10條。

exec

proc_page go

執行結果:

id name

1   aaa

2   bbb

3   vvv

4   fff

5   eee

6   ggg

7   ddd

8   sss

9   ttt

10 555

帶乙個引數的,每頁的行數為給定的預設值

10條,顯示第三頁。

exec

proc_page @page=3 go

執行結果:

id   name

21 vvvhgfhg

22 fdsfsgffff

23 eeehgfhjgf

24 ggghgjgf

25 dddfdsafdd

26 sssfdsfds

27 jhkjkjttt

測試超出範圍的,一共

27條,這裡想要顯示的是31到

40條記錄,所以提示錯誤了。

exec

proc_page @page=4 go

執行結果:

已超出最大頁數!請縮小要顯示頁號或者減少每頁要顯示的行數!

帶兩個引數的,每頁

5條,顯示第3頁

exec

proc_page 5,3 go

執行結果:

id name

11    uyuu

12    vvjhgjv

13    ffghfgdf

14    fsdfsdf

15    rewrew

SQL Server2005學習筆記一

sqlcmd utility sql command是微軟乙個win32控制台命令工具,它可以執行及時查詢sql語句和指令碼。它代替了sql server2000和以前的osql,isql等命令,可以參考這裡的幫助大家如果用過oracle中的sql plus的話,就會明白這個工具的用途了。它的圖形化...

SQL Server2005複製實現

一 準備工作 1 在發布伺服器上建立乙個共享目錄,作為發布快照檔案的存放目錄。例如 在d 盤根目錄下建資料夾名為pub 2 設定sql 發布伺服器和訂閱伺服器均設定 步驟 開啟服務 控制面板 管理工具 服務 右擊sqlserver agent 屬性 登入 選擇 此帳戶 輸入或選擇第一步中建立的win...

SQL Server 2005完全解除安裝

sql server 2005的解除安裝是乙個非常頭疼的問題。我曾經嘗試過直接使用 新增或刪除程式 工具解除安裝 清除安裝目錄 刪除登錄檔內容等等各種方式綜合解除安裝,勉強成功。現在終於找到了乙個事半功倍的方法,多次嘗試,未有失敗,具體如下 第一種是微軟官方提供的工具 msicuu2.exe 微軟官...