利用SqlServer內部預存程序實現快速方便的分頁

來源:互聯網
上載者:User

1)只需要提供Sql語句和每頁的記錄數,頁數就可以了
2)速度超快喲,100W記錄1~3秒就分出來了
3)對於預存程序特別好用
--//調用的方式

exec up_zbh_DivPageBySql 'select * from 表',10,3
預存程序
exec up_zbh_DivPageBySql 'exec 預存程序',10,1

--//我吧它封裝成一個預存程序,調用的時候方便的很哈!!
create procedure up_zbh_DivPageBySql
 @strSql varchar(8000),
 @nPageSize int,
 @nPageCount int
as
    SET NOCOUNT ON
    DECLARE @P1 INT,
    @nRowCount INT

    --//注意:@scrollopt = 1 會取得Select的時候的總行數
    EXEC sp_cursoropen @P1 OUTPUT, @strSql, @scrollopt = 2, @ccopt = 335873, @rowcount = @nRowCount OUTPUT

    IF (@P1 != 0)
    BEGIN
--SELECT @nRowCount AS nRecordCount, ceiling(1.0 * @nRowCount / @nPageSize) AS nPageCount, @nPageCount AS nPage
SET @nPageCount = (@nPageCount - 1) * @nPageSize + 1
EXEC sp_cursorfetch @P1, 32, @nPageCount, @nPageSize 
EXEC sp_cursorclose @P1
    END

GO

--//調用的方式

exec up_zbh_DivPageBySql 'select * from 表',10,3
預存程序
exec up_zbh_DivPageBySql 'exec 預存程序',10,1

exec up_zbh_DivPageBySql 'exec 預存程序',
                         10,--每頁10條記錄
                         2  --返回第2頁

好東東,拿出來給大家共用,哈哈!!
比以前的那些個預存程序分頁方便,簡單多了!!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.