两个sql server 2000的通用分页存储过程

花之恋鲜花店99

花之恋鲜花店99

2016-01-29 15:48

两个sql server 2000的通用分页存储过程,两个sql server 2000的通用分页存储过程
第一个支持唯一主键,第二支持多主键,测试过,效率一般

CREATE PROC P_viewPage
    /*
        no_mIss 分页存储过程 2007.2.20  QQ:34813284
        适用于单一主键或存在唯一值列的表或视图         
    */

    @TableName VARCHAR(200),     --表名
    @FieldList VARCHAR(2000),    --显示列名
    @PrimaryKey VARCHAR(100),    --单一主键或唯一值键
    @Where VARCHAR(1000),        --查询条件 不含'where'字符
    @Order VARCHAR(1000),        --排序 不含'order by'字符,如id asc,userid desc,当@SortType=3时生效
    @SortType INT,               --排序规则 1:正序asc 2:倒序desc 3:多列排序
    @RecorderCount INT,          --记录总数 0:会返回总记录
    @PageSize INT,               --每页输出的记录数
    @PageIndex INT,              --当前页数
    @TotalCount INT OUTPUT,      --返回记录总数
    @TotalPageCount INT OUTPUT   --返回总页数
AS
    SET NOCOUNT ON
    IF ISNULL(@TableName,'') = '' OR ISNULL(@FieldList,'') = ''
        OR ISNULL(@PrimaryKey,'') = ''
        OR @SortType < 1 OR @SortType 3
        OR @RecorderCount < 0 OR @PageSize < 0 OR @PageIndex < 0
    BEGIN       
        RETURN
    END
 
    DECLARE @new_where1 VARCHAR(1000)
    DECLARE @new_where2 VARCHAR(1000)
    DECLARE @new_order VARCHAR(1000)  
    DECLARE @Sql VARCHAR(8000)
    DECLARE @SqlCount NVARCHAR(4000)

    IF ISNULL(@where,'') = ''
        BEGIN
            SET @new_where1 = ' '
            SET @new_where2 = ' WHERE  '
        END
    ELSE
        BEGIN
            SET @new_where1 = ' WHERE ' + @where
            SET @new_where2 = ' WHERE ' + @where + ' AND '
        END

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)

    IF ISNULL(@order,'') = '' OR @SortType = 1  OR @SortType = 2
        BEGIN
            IF @SortType = 1 SET @new_order = ' ORDER BY ' + @PrimaryKey + ' ASC'
            IF @SortType = 2 SET @new_order = ' ORDER BY ' + @PrimaryKey + ' DESC'
        END
    ELSE
        BEGIN
            SET @new_order = ' ORDER BY ' + @Order
        END

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)

    SET @SqlCount = 'SELECT @TotalCount=COUNT(*),@TotalPageCount=CEILING((COUNT(*)+0.0)/'
  

展开更多 50%)
分享

猜你喜欢

两个sql server 2000的通用分页存储过程

SQLServer
两个sql server 2000的通用分页存储过程

SQL server 2000存储过程

SQLServer
SQL server 2000存储过程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server 存储过程的分页

ASP
SQL Server 存储过程的分页

自己改写的一个sql server 2000的分页存储过程

SQLServer
自己改写的一个sql server 2000的分页存储过程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

sql2000下 分页存储过程

SQLServer
sql2000下 分页存储过程

SQL Server 存储过程的分页方案比拼

SQLServer
SQL Server 存储过程的分页方案比拼

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

SQL SERVER2000中订阅与发布的具体操作

SQL SERVER2000中订阅与发布的具体操作

《放开那三国》攻略之开箱子心得技巧

《放开那三国》攻略之开箱子心得技巧
下拉加载更多内容 ↓