• λ我爱Aspx >> C#.Net >> 两个sql server 2000的通用分页存储过程_数据库技巧
  • 两个sql server 2000的通用分页存储过程_数据库技巧

  • :aspxer  Դ:internet  :2007-4-28 23:44:34  ؼ:sql,数据库,数据
  • 第一个支持唯一主键,第二支持多主键,测试过,效率一般

    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

    IF ISNULL(@order,'') = '' OR @SortType = 1 OR @SortType = 2

    Ҷƪл˵?
  • һƪMysql分页查询通用存储过程_数据库技巧
    һƪ自己改写的一个sql server 2000的分页存储过程_数据库技巧