SQL Server 存储过程进行分页查询
CREATE PROCEDURE prcPageResult -- 获得某一页的数据 --
@currPage INT = 1 , --当前页页码 (即Top currPage)
@showColumn VARCHAR(2000) = '*' , --需要得到的字段 (即 column1,column2,......)
@tabName VARCHAR(2000) , --需要查看的表名 (即 from table_name)
@strCondition VARCHAR(2000) = '' , --查询条件 (即 where condition......) 不用加where关键字
@ascColumn VARCHAR(100) = '' , --排序的字段名 (即 order by column asc/desc)
@bitOrderType BIT = 0 , --排序的类型 (0为升序,1为降序)
@pkColumn VARCHAR(50) = '' , --主键名称
@pageSize INT = 20 --分页大小
AS
BEGIN -- 存储过程开始 -- 该存储过程需要用到的几个变量 --
DECLARE @strTemp VARCHAR(1000)
DECLARE @strSql VARCHAR(4000) --该存储过程最后执行的语句
DECLARE @strOrderType VARCHAR(1000) --排序类型语句 (order by column asc或者order by column desc)
BEGIN
IF @bitOrderType = 1 -- bitOrderType=1即执行降序
BEGIN
SET @strOrderType = ' ORDER BY ' + @ascColumn + ' DESC'
SET @strTemp = '<(SELECT min'
END
ELSE
BEGIN
SET @strOrderType = ' ORDER BY ' + @ascColumn + ' ASC'
SET @strTemp = '>(SELECT max'
END
IF @currPage = 1 -- 如果是第一页
BEGIN
IF @strCondition != ''
SET @strSql = 'SELECT TOP ' + STR(@pageSize) + ' '
+ @showColumn + ' FROM ' + @tabName + ' WHERE '
+ @strCondition + @strOrderType
ELSE
SET @strSql = 'SELECT TOP ' + STR(@pageSize) + ' '
+ @showColumn + ' FROM ' + @tabName
+ @strOrderType
END
ELSE -- 其他页
BEGIN
IF @strCondition != ''
SET @strSql = 'SELECT TOP ' + STR(@pageSize) + ' '
+ @showColumn + ' FROM ' + @tabName + ' WHERE '
+ @strCondition + ' AND ' + @pkColumn + @strTemp
+ '(' + @pkColumn + ')' + ' FROM (SELECT TOP '
+ STR(( @currPage - 1 ) * @pageSize) + ' '
+ @pkColumn + ' FROM ' + @tabName + @strOrderType
+ ') AS TabTemp)' + @strOrderType
ELSE
SET @strSql = 'SELECT TOP ' + STR(@pageSize) + ' '
+ @showColumn + ' FROM ' + @tabName + ' WHERE '
+ @pkColumn + @strTemp + '(' + @pkColumn + ')'
+ ' FROM (SELECT TOP ' + STR(( @currPage - 1 )
* @pageSize) + ' '
+ @pkColumn + ' FROM ' + @tabName + @strOrderType
+ ') AS TabTemp)' + @strOrderType
END
END
EXEC (@strSql)
END
EXEC prcPageResult 2,'*','outpr_register','state=1','inputtime',1,'registerid',3
SQL Server 存储过程进行分页查询的更多相关文章
- 最通用的ibatis.Net使用sql server存储过程返回分页数据的详细例子
ibatis.Net是一个比较简单和灵活的ORM框架,今天我分享一个我的项目中使用sql server通用存储过程来分页的一个例子,用ibatis.Net框架统一返回分页数据为IList<Has ...
- Sql Server 存储过程中查询数据无法使用 Union(All)
原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
腾讯云图片鉴黄集成到C# 官方文档:https://cloud.tencent.com/document/product/641/12422 请求官方API及签名的生成代码如下: public c ...
- 初识 Sql Server存储过程
开篇语 之前的公司并未使用存储过程来做项目,所以小生对存储过程的调用.使用也是一知半解,刚好这家公司就大量用到了存储过程 这次做的功能,为了保持风格一致,也是需要使用存储过程来实现动态sql和数据分页 ...
- SQL Server 存储过程(转载)
SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这 ...
- (摘录)SQL Server 存储过程
文章摘录:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-SQL中的存储过程 ...
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- 在SQL Server 2016里使用查询存储进行性能调优
作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在 ...
- Sql Server来龙去脉系列之三 查询过程跟踪
我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...
随机推荐
- Zend Studio 无法打开的解决办法
今天郁闷的...正在写代码,突然 computer 嗝屁了,断电后自动重启了一次,开机后就悲剧了,Zend Studio 9 无法打开了,每次运行只弹窗个 请查看项目错误日志的提示 然后就没反应了.. ...
- wangEditor的jQuery插件化
wangEditor是一款优秀的Web富文本编辑器.这篇随笔中讲述的wangEditor版本是2.1.22,由于它依赖于jQuery(作者打算在第三版中取消对jQuery的依赖),那么如果能使用$(& ...
- HDU 1241Oil Deposits (DFS)
Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground ...
- /tmp 和 /var/tmp 的区别
/tmp is meant as fast (possibly small) storage with a short time to live (TTL). Many systems clean / ...
- aws部署从无到有(二)windows管理aws
1 AMI正常启动后会进入下面页面 2 远程链接点击如何连接至您的 Linux 实例进入下载页 Windows下使用 PuTTY连接到 Linux 实例 http://www.chiark.green ...
- Linux入门(二)Linux基本命令及基本操作
1 常用Linux命令 图形界面进入到字符界面: ctrl+alt+F2~F6 字符界面进入到图形界面:ctrl +alt+F7 查看本机ip: ifconfig (windows是:ipconf ...
- Java Object 对象拷贝答疑
Java Object 对象拷贝答疑 @author ixenos 摘要:在对象的clone过程需要注意的几点.关于关键字this.super 关于clone[对象拷贝] 在实际编程过程,有时候我们会 ...
- OpenCV2.x自学笔记——形态学运算
名称 标识符 作用 原理 腐蚀 MORPH_ERODE 膨胀 MORPH_DILATE 开运算 MORPH_OPEN 消除细白点 先腐蚀后膨胀 闭运算 MORPH_CLOSE 消除小黑洞 先膨胀后腐蚀 ...
- Ambari删除服务
ambari-cassandra-service上面推荐的方法: curl -u admin:$PASSWORD -i -H 'X-Requested-By: ambari' -X PUT -d '{ ...
- ActiveMQ in Action(5) - Clustering
关键字: activemq 2.5 Clustering ActiveMQ从多种不同的方面提供了集群的支持.2.5.1 Queue consumer clusters ActiveMQ支持 ...