zoukankan      html  css  js  c++  java
  • 分页的存储过程

    CREATE PROCEDURE [dbo].[ProcCustomPage]
        (
         @Table_Name varchar(5000),    --表名
         @Sign_Record varchar(50),     --主键
         @Filter_Condition varchar(1000),    --筛选条件,不带where
         @Page_Size int,     --页大小
         @Page_Index int,       --页索引      
       @TaxisField varchar(1000), --排序字段
         @Taxis_Sign int,     --排序方式 1为 DESC, 0为 ASC
    @Find_RecordList varchar(1000),   --查找的字段
         @Record_Count int     --总记录数
         )
         AS
          BEGIN
          DECLARE @Start_Number int
          DECLARE @End_Number int
          DECLARE @TopN_Number int
         DECLARE @sSQL varchar(8000)
    if(@Find_RecordList='')
    BEGIN
    SELECT @Find_RecordList='*'
    END
         SELECT @Start_Number =(@Page_Index-1) * @Page_Size
          IF @Start_Number<=0
         SElECT @Start_Number=0
          SELECT @End_Number=@Start_Number+@Page_Size
          IF @End_Number>@Record_Count
         SELECT @End_Number=@Record_Count
         SELECT @TopN_Number=@End_Number-@Start_Number
         IF @TopN_Number<=0
         SELECT @TopN_Number=0
          print @TopN_Number
         print @Start_Number
         print @End_Number
         print @Record_Count
    IF @TaxisField=''
    begin
    select @TaxisField=@Sign_Record
    end
         IF @Taxis_Sign=0
           BEGIN
             IF @Filter_Condition=''
             BEGIN
               SELECT @sSQL='SELECT '+@Find_RecordList+' FROM '+@Table_Name+'
               WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@TopN_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+'
                WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@End_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+'
              ORDER BY '+@TaxisField+') order by '+@TaxisField+' DESC)order by '+@TaxisField
             END
            ELSE
            BEGIN
            SELECT @sSQL='SELECT '+@Find_RecordList+' FROM '+@Table_Name+'
         WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@TopN_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+'
         WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@End_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+'
         WHERE '+@Filter_Condition+' ORDER BY '+@TaxisField+') and '+@Filter_Condition+' order by '+@TaxisField+' DESC) and '+@Filter_Condition+' order by '+@TaxisField
             END
          END
        ELSE
          BEGIN
          IF @Filter_Condition=''
            BEGIN
              SELECT @sSQL='SELECT '+@Find_RecordList+' FROM '+@Table_Name+'
         WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@TopN_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+'
         WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@End_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+'
         ORDER BY '+@TaxisField+' DESC) order by '+@TaxisField+')order by '+@TaxisField+' DESC'
         END
          ELSE
          BEGIN
            SELECT @sSQL='SELECT '+@Find_RecordList+' FROM '+@Table_Name+'
         WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@TopN_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+'
         WHERE '+@Sign_Record+' in (SELECT TOP '+CAST(@End_Number AS VARCHAR(10))+' '+@Sign_Record+' FROM '+@Table_Name+'
         WHERE '+@Filter_Condition+' ORDER BY '+@TaxisField+' DESC) and '+@Filter_Condition+' order by '+@TaxisField+') and '+@Filter_Condition+' order by '+@TaxisField+' DESC'
         END
          END
          EXEC (@sSQL)
          IF @@ERROR<>0
          RETURN -3
         RETURN 0
         END
        
         PRINT @sSQL
    
    GO
    

      

  • 相关阅读:
    java.lang.NoClassDefFoundError: sun/swing/plaf/synth/SynthIcon
    微信数据库解密--代码报错:未定义标识符 HMAC_CTX_init
    Windows家庭版组策略编辑
    Visual Studio x64 使用 .asm 文件
    某数据库管理软件离线注册分析
    EV剪辑分析
    ciscn_lonelywolf
    arm-pwn
    libc-2.32.so在orw上与其他版本的区别
    更新libc
  • 原文地址:https://www.cnblogs.com/yannis/p/2160832.html
Copyright © 2011-2022 走看看