游標對於分頁儲存過程

2021-04-19 18:11:03 字數 768 閱讀 1124

1。我個人認為最好的分頁方法是:

select top 10 * from table where id>200

寫成儲存過程,上面的語句要拼一下sql語句,要獲得最後大於的哪乙個id號

2。那個用光標的方式,只適合於小資料量的表,如果表在一萬行以上,就差勁了

你的儲存過程還比不上not in分頁,示例:

select top 10 * from customers where customerid not in (select top 20 customerid from customers )

declare @sqlstr varchar(8000)

set @sqlstr='select top '+cast(@每頁大小 as varchar)+' * from 表 where 主鍵列 not in (select top '+cast(@每頁大小*@第幾頁 as varchar)+' 主鍵列 from 表 )'

exec(@sqlstr)

3。游標是存放在記憶體中,很費記憶體.

游標一建立,就將相關的記錄鎖住,直到取消游標

游標提供了對特定集合中逐行掃瞄的手段,一般使用游標來逐行遍歷資料,根據取出資料條件的不同進行不同的操作。而對於多表和大表中定義的游標(大的資料集合)迴圈很容易使程式進入乙個漫長的等待甚至宕機.

所以說,我個人的經驗,就是一萬上行上的表,不用游標.小資料量的表,適當的時候可以用游標

因為游標,遍歷小資料量的行集還是不錯的乙個方法!

4。用臨時表自定義分頁和使用游標自定義分頁都不好!

SQL儲存過程分頁與游標使用

儲存過程 create procedure p splitpage sql nvarchar 4000 要執行的 sql語句 page int 1,要顯示的頁碼 pagesize int,每頁的大小 pagecount int 0 out,總頁數 recordcount int 0 out 總記錄數...

分頁(效果)儲存過程,游標的應用

分頁 效果 儲存過程,游標的應用,表變數的使用 學習之用 建表 create table student sno varchar 10 primary key,sname nvarchar 10 char 2 age int,dept nvarchar 10 插入資料 insert into stu...

分頁儲存過程 分頁儲存過程

分頁儲存過程 alter proc dbo p pageshow pagesize int,每頁大小 currentpage int out,當前頁 housename nvarchar 50 房產名稱 totalcount int out,總記錄數 totalpage int out 總頁數 as...