• 一个同事提供的通用存储过程(标记学习)


    View Code
     1 /************************************************************
     2  * Code  by se7en
     3  * Time: 2013/3/22 14:23:29
     4  ************************************************************/
     5 
     6 USE [HLT_HIEP_V2]
     7 GO
     8 /****** Object:  StoredProcedure [dbo].[Paging]    Script Date: 03/22/2013 14:23:17 ******/
     9 SET ANSI_NULLS ON
    10 GO
    11 
    12 SET QUOTED_IDENTIFIER ON
    13 GO
    14 
    15 ALTER PROCEDURE [dbo].[Paging] --创建分页数据集 Table[0]:记录总数和总页数, Table[1]:当前页
    16     @pagesize INT, -- 指定分页大小
    17     @pagenum INT, -- 指定当前页
    18     @key VARCHAR(50), -- 查询主键
    19     @fields VARCHAR(1024), --指定除了主键和外其它需要输出的字段
    20     @joins VARCHAR(2048), --联合数据源
    21     @filter VARCHAR(4096), --查询条件
    22     @order VARCHAR(1000) --排序规则
    23 AS
    24     DECLARE @sql1  VARCHAR(4096)
    25     DECLARE @sql2  VARCHAR(4096)
    26     DECLARE @sql3  VARCHAR(4096)
    27     SET @sql1 = 'select identity(int, 1, 1) as seqId, convert(varchar(200), ' +
    28         @key + ') as pkey into #tmp from ' + @joins + ' where ' + @filter +
    29         ' order by ' + @order
    30     
    31     SET @sql2 = 'select @@rowcount as 记录总数, ceiling(@@rowcount*1.0 / ' +
    32         CONVERT(VARCHAR(10), @pagesize) + ') as 总页数'
    33     
    34     SET @sql3 = 'select ' + @key + ' as 主键,  #tmp.seqid as 序号, ' + @fields +
    35         ' from ' + @joins + ' inner join #tmp on ' + @key + ' = #tmp.pkey ' +
    36         ' where ' + @filter + ' and #tmp.seqid between ' + CONVERT(VARCHAR(10), (@pagenum -1) * @pagesize + 1) 
    37         + ' and ' + CONVERT(VARCHAR(10), @pagenum * @pagesize) +
    38         ' order by #tmp.seqid'
    39     
    40     EXEC (@sql1 + ';' + @sql2 + ';' + @sql3)
    41     PRINT @sql1

    个人感觉还是有可以改进的地方 ,但是因为领导要的急 ,所以就拿过来用了。可用性还是很高的 。

  • 相关阅读:
    2.6.2.MySQL主从复制的原理
    2.4.5 MySQL InnoDB重做与回滚介绍
    PRML读书笔记_绪论曲线拟合部分
    python3_字符串
    PRML读书笔记_绪论
    python3_列表、元组、集合、字典
    linux_软件安装
    shell获取帮助
    linux_查看磁盘与目录容量
    linux_压缩解压命令(zip/tar)
  • 原文地址:https://www.cnblogs.com/lelese7en/p/2975519.html
Copyright © 2020-2023  润新知