zoukankan      html  css  js  c++  java
  • sql通用分页自定义表条件存储过程

    create PROCEDURE PrcTestByPage 
    (
     @tablename varchar(50),                                
     @selectfilter varchar(100),       
     @orderbyfilter varchar(100),                          
     @selectpage int,                      
     @pageSize int                             
    )
    AS 
    BEGIN -- 存储过程开始 
    
    declare @pkname varchar(100)  -- 获取表的主键名称
    SELECT @pkname=COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@tablename
    
    declare @num int
    set @num=(@selectpage-1)*@pageSize
    
    declare @strsqltwo varchar(4000)
    set @strsqltwo='select top '+STR(@num)+' '+@pkname+' from '+@tablename
    DECLARE @strSql varchar(4000)           --SQL执行语句
    set @strSql='select top '+str(@pageSize)+' * from '+@tablename
    
    if(len(@selectfilter)>0)   -- 判断有没有where条件 
    BEGIN 
     set @strsqltwo=@strsqltwo+' where '+@selectfilter
        SET @strSql = @strSql+' where '+@selectfilter+' and '+@pkname+' not in('+@strsqltwo+')'    
    END 
    else
     SET @strSql = @strSql+' where '+@pkname+' not in('+@strsqltwo+')'
    if(len(@orderbyfilter)>0) --判断有没有排序条件
    BEGIN 
     set @strsqltwo=@strsqltwo+' order by '+@orderbyfilter
        SET @strSql = @strSql+' order by '+@orderbyfilter    
    END 
    
    EXEC (@strSql) 
    END  -- 存储过程结束 
    
    GO  
    
    exec PrcTestByPage 'Print_order','','',2,6
    

      

    转载 请注明原文地址并标明转载:http://www.cnblogs.com/laopo 商业用途请与我联系:lcfhn168@163.com
  • 相关阅读:
    mysql外键和连表操作
    数据库的操作
    进程之select和epoll
    jwt的应用生成token,redis做储存
    为什么前后端分离不利于seo
    redis的bitmap
    lnmp环境的nginx的tp5配置
    虚拟机安装cenos7后ifcfg看网卡无inet地址掩码等信息
    rsa加密
    hydra命令
  • 原文地址:https://www.cnblogs.com/laopo/p/4762240.html
Copyright © 2011-2022 走看看