zoukankan      html  css  js  c++  java
  • 我认为最快的存储过程分页

    我在项目里面如果使用存储过程分页,都是这样做的。

     1
     2
     3
     4
     5
     6
     7CREATE      PROCEDURE page
     8 @PageIndex    int ,                                  /*当前页数*/
     9 @PageSize      int                                   /*每页大小*/
    10 AS
    11  
    12
    13IF @PageIndex > 0
    14 BEGIN
    15     DECLARE @PageLowerBound int 
    16     DECLARE @StartID int
    17     DECLARE @sql varchar(225)
    18
    19     SET @PageLowerBound = @PageSize * (@PageIndex-1)
    20    
    21     SET ROWCOUNT @PageLowerBound 
    22    
    23     SELECT  @StartID = [id]      FROM table     ORDER BY id desc
    24     
    25     SET ROWCOUNT 0
    26     
    27    
    28     SET @sql='select top '+str(@PageSize+' COLUMNS from table where      and [id]>'+ str(@StartID+' ORDER BY id '     
    29
    30     EXEC(@sql)
    31 END 
    32

    如果大家不喜欢用游标,那就将下面部分改为
    1SET ROWCOUNT @PageLowerBound 
    2    
    3     SELECT  @StartID = [id]      FROM table     ORDER BY id desc
    4    
    5     SET ROWCOUNT 0

    不使用游标的方法

    1  
    2    set sql='SELECT top '  +str(PageLowerBound)+   ' @startID=[id] FROM table     ORDER BY id desc'
    3exec(sql)
    4



     
  • 相关阅读:
    系统CLOCK 频率 C代码查看范例
    LINUX C 文件读写范例
    linux 打印机 打印机支持工作组 openprinting
    问题记录
    初步了解profile文件
    内核中的HZ 及延迟等
    LINUX_System_Call_Quick_Reference
    Linux基础篇 六 (bash shell基础 (vi /etc/shells))
    Android调用平台功能具体技巧分享
    男人35岁前要做好的几件事
  • 原文地址:https://www.cnblogs.com/leiyu1980/p/165905.html
Copyright © 2011-2022 走看看