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

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    -- =============================================
    -- Author:阿瑞-- Create date: 2008-03-13
    -- Description: 分页存储过程
    -- Debug:exec Proc_AspNetPager 'ProductType','[PTypeId],[Name],[Order]','1=1',5,2,'[order]',1,0
    -- =============================================
    CREATE PROCEDURE [dbo].[Proc_AspNetPager]
     @TableName varchar(20),  --表明
     @FieldName varchar(300), --显示的字段明
     @Where varchar(500),
     @PageSize int,    --条数
     @PageIndex int,    --页码
     @FiledOrder varchar(50), --排序字段
     @Order bit,    --排序类型 1为倒序,否则为正序
     @DoCount bit    --是否返回总数 1为返回,否则不返回
    AS
    BEGIN
     DECLARE @SQL varchar(4000)
     DECLARE @ORDERStr varchar(200)
     SET NOCOUNT ON 

     IF(@Order=1)
      SET @ORDERStr = 'ORDER BY '+@FiledOrder+' DESC '
     ELSE
      SET @ORDERStr = 'ORDER BY '+@FiledOrder+' ASC '
     IF(@DoCount=1)
     BEGIN
      SET @SQL = 'SELECT COUNT(*) FROM '+@TableName+' WHERE '+@Where+' '
       + 'SELECT top '+cast(@PageSize as varchar)+' '+@FieldName+' FROM '+@TableName+' WHERE '+@Where+' '
       + @ORDERStr
     END
     ELSE
      BEGIN
      SET @SQL = 'WITH Temptbl as ('
       +'SELECT ROW_NUMBER() OVER ('+@ORDERStr+')AS Row, '+@FieldName+' FROM '+@TableName+'  WHERE '+@Where+')'
       +'SELECT * FROM Temptbl WHERE Row between ('+cast(@PageIndex as varchar)+'-1)*'+cast(@PageSize as varchar)+'+1'+' and ('+cast(@PageIndex as varchar)+'-1)*'+cast(@PageSize as varchar)+'+'+cast(@PageSize as varchar)
     END
     EXEC(@SQL)
    print @SQL
    END


     

  • 相关阅读:
    Java正则表达式进阶教程之构造方法
    command模式
    黑马程序员面向对象继承
    Spring+Quartz实现定时任务的配置方法
    NIO学习笔记3(UDP)
    java继承总结
    轻松快速掌握JAVA设计模式
    Struts2>OGNL 小强斋
    Struts2>标签 小强斋
    Struts2>fielderror显示处理 小强斋
  • 原文地址:https://www.cnblogs.com/goooto/p/1105242.html
Copyright © 2011-2022 走看看