游标对于分页存储过程
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语句收集
- 下一篇: C#技术内幕 学习笔记