zoukankan      html  css  js  c++  java
  • sql通用的存储过程

    QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[UpPagerSingle]

    @ReturnFields Varchar(500)='*',--搜索表的字段,比如:’id,datatime,job‘,用逗号隔开

    @TableName Varchar(30), --搜索的表名 @Where Varchar(1000)='',--搜索条件,这里不用写where,比如:job=’teacher‘and class='2'

    @Orderfld Varchar(200)='', --排序,可以使用多字段排序但主键字段必需在最前面.也可以不写,比如:order by class asc @PageIndex int=1, --页号

    @PageSize int=20 --每页显示数 as 

    declare  @RecordCount int=0 declare @TmpSelect      NVarchar(max)  declare @Tmp     NVarchar(600) 

    set nocount on--关闭计数

    if @Where!='' set @TmpSelect = 'select @RecordCount = count(*) from '+@TableName+' where '+@Where

    else

         set @TmpSelect='select @RecordCount=count(*) from '+@TableName+''

    execute sp_executesql @TmpSelect,    --执行上面的sql语句 N'@RecordCount int OUTPUT' ,   --执行输出数据的sql语句,output出总记录数

    @RecordCount  OUTPUT

           /*判断页数是否正确*/

    if (@PageIndex - 1) * @PageSize > @RecordCount   --页号大于总页数,返回错误     

    begin

    if(@RecordCount%@PageSize)>0   

       set @PageIndex=@RecordCount/@PageSize+1

    else   set @PageIndex=@RecordCount/@PageSize end set nocount off--打开计数

    if @Where <> ''

       begin  

          set @TmpSelect = 'select * from (select row_number() over('+@Orderfld+' ) rn,'+@ReturnFields+' from ' +@TableName+' where '+@Where+')tb where rn >'  + convert(nvarchar(50),(@PageIndex-1)*@PageSize) +' and rn <= '+convert(nvarchar(50),@PageIndex*@PageSize)

       end

    else

    begin  

    set @TmpSelect = 'select * from (select row_number() over('+@Orderfld+' ) rn,'+@ReturnFields+' from ' +@TableName+')tb where rn >'  + convert(nvarchar(50),(@PageIndex-1)*@PageSize) +' and rn <= '+convert(nvarchar(50),@PageIndex*@PageSize)

    end

    execute sp_executesql @TmpSelect

    SELECT  @RecordCount As RecordCount

  • 相关阅读:
    HDU1251 统计难题
    字典树模板
    HDU5536 Chip Factory(01字典树)
    函数的返回值
    函数的使用原则
    文件修改
    函数
    文件内指针移动
    文件操作模式
    字符编码
  • 原文地址:https://www.cnblogs.com/qingtianoye/p/3307469.html
Copyright © 2011-2022 走看看