• λ我爱Aspx >> C#.Net >> sql2000下 分页存储过程_数据库技巧
  • sql2000下 分页存储过程_数据库技巧

  • :aspxer  Դ:internet  :2007-4-28 23:44:40  ؼ:sql,数据库,数据
  • SET QUOTED_IDENTIFIER OFF

    GO

    SET ANSI_NULLS ON

    GO

    --名称:分页存储过程

    --使用示例 EXEC sp_PageIndex '*',' FROM StuSources ',2,10

    --注意

    --目前还没有对输入的参数进行严格的验证

    --默认为输入都是合法有效的

    ALTER PROC sp_PageIndex

    @sqlSelect varchar(800) --SELECT 后面 FROM 前面 的 字段 不用包含SELECT

    ,@sqlFrom varchar(800) --FROM 后面 的 字段 包含FROM

    ,@countPerPage int -- 每页数据行数

    ,@toPage int --要转到的页码

    AS

    BEGIN

    -- 根据每页数据行数 和 要转到的页码 得到 数据起止点

    Declare @start int

    Declare @end int

    set @end = @countPerPage * @toPage

    set @start = @countPerPage * (@toPage - 1) + 1

    -- 临时表名称 可随机命名

    Declare @tmpTable varchar(10)

    SET @tmpTable ='#tmp'

    Declare @sqlStr varchar(800)

    -- 创建数据源到临时表

    SELECT @sqlStr = 'SELECT Identity(int,1,1) AS RowIndex,'

    SELECT @sqlStr = @sqlStr + rtrim(@sqlSelect) + ' INTO '+ @tmpTable

    SELECT @sqlStr = @sqlStr + rtrim(@sqlFrom)

    -- 查询临时表 得到所需要的数据

    SELECT @sqlStr = @sqlStr + ' '+'SELECT '+ rtrim(@sqlSelect) +' FROM ' + @tmpTable

    SELECT @sqlStr = @sqlStr + ' WHERE RowIndex BETWEEN ' + Convert(char,@start) + " AND " + Convert(char,@end)

    -- 删除临时表

    SELECT @sqlStr = @sqlStr + ' '+'DROP TABLE '+@tmpTable

    EXEC (@sqlStr)

    END

    GO

    SET QUOTED_IDENTIFIER OFF

    GO

    SET ANSI_NULLS ON

    GO

    http://www.cnblogs.com/freeliver54/archive/2006/12/31/608858.html

    Ҷƪл˵?
  • һƪC#中使用存储过程中的返回值_C#应用
    һƪSQL IF..ELSE..在存储过程的使用规范_数据库技巧