sql通用分页自定义表条件存储过程
2015-08-27 08:14
621 查看
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
相关文章推荐
- 我知道点redis-单机数据库(RDB持久化)
- 关于Oracle 产品(database,中间件等等)在vmware虚拟化环境中的支持情况
- CentOS 5.4下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)
- mysql 库跟表 操作
- Oracle索引,B树索引、哈希索引等
- C#图片存入数据库及其读出显示
- redis实战基础篇:redis的5种数据类型的基本操作
- C#读取数据库中的表
- MySQL数据库
- C# 操作数据库表和数据库
- 数据库操作
- Spring Data MongoDB实战(上)
- 项目实战一 - 安卓数据库的设计(二 settings表 ,增,更新,查类)
- 调试C访问redis的代码
- java连接Oracle数据库的示例代码
- PostgreSQL事务特性之ROLLBACK
- PostgreSQL事务特性之嵌套事务
- SQL总结(五)存储过程
- mysql命令语句来去除掉字段中空格字符的方法
- 关系型数据库sqlite之图书管理系统