zoukankan      html  css  js  c++  java
  • 超棒的存储过程分页写法

    --Question获取所有列表(分页、排序)

     ---创建存储过程

     CREATE PROCEDURE [dbo].[Pr_Question_GetPagedListAll]  

                 @StartRowIndex int, --起始记录号  

                 @MaximumRows int, --记录数   

                 @SortExpression varchar(1000) --排序字段

     AS BEGIN  --@SortExpression参数:请根据实际查询需要进行默认值设定

     SET NOCOUNT ON    

     ---声明查询语句、总行数、临时表

     DECLARE @SqlGet varchar(1600)  

     DECLARE @TotalRecords int    //创建表变量(总行数)

     CREATE TABLE #PageIndex    //创建临时表,存储数据主键 

      (   

           [IndexId] int IDENTITY (0, 1) NOT NULL,   

           [QuestionId] Int  

     )    

     ---设置排序条件

    IF @SortExpression IS NULL --OR (@SortExpression = '')     //获取排序条件

           SET @SortExpression = '' --请在此处设置默认值(同时启用上一行后半部分的判断)    

    IF @SortExpression <> ''   

            SET @SortExpression = ' ORDER BY ' + @SortExpression    

     ---执行查询语句,设置表和总行数

    SET @SqlGet = 'SELECT [QuestionId] FROM [dbo].[Question]  ' + @SortExpression    INSERT INTO #PageIndex  (   [QuestionId]  ) EXEC (@SqlGet)    

    SET @TotalRecords = @@ROWCOUNT    //设置总行数

     ---根据分页值查询Question表对应数据

    SELECT   biz.[QuestionId],  

                  biz.[Title],   

                  biz...  

    FROM [dbo].[Question] biz, #PageIndex p  

    WHERE   biz.[DraftQuestionId] = p.[DraftQuestionId] AND   

                  p.IndexId >= @StartRowIndex AND   p.IndexId < @StartRowIndex + @MaximumRows  

    ORDER BY p.IndexId       //将表组合进行查询,并分页

     ---关闭计数器并返回变量值

    SET NOCOUNT OFF         //将计数器开关关闭

    RETURN @TotalRecords  //设置返回总行数

    END

    GO

  • 相关阅读:
    ASP.NET编程的十大技巧
    C#学习心得(转)
    POJ 1177 Picture (线段树)
    POJ 3067 Japan (树状数组)
    POJ 2828 Buy Tickets (线段树)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4235 Flowers (线段树)
    POJ 2886 Who Gets the Most Candies? (线段树)
    POJ 2418 Cows (树状数组)
    HDU 4339 Query (线段树)
  • 原文地址:https://www.cnblogs.com/BeyondWJsel/p/2343708.html
Copyright © 2011-2022 走看看