高效的SQL分页存储过程
2024-10-10 04:05:06
CREATE PROCEDURE SP_CommonPageList
@Fields VARCHAR(500),
@From VARCHAR(1000),
@Condition VARCHAR(1000),
@SortBy VARCHAR(500),
@PageIndex NVARCHAR(10),
@PageSize NVARCHAR(10),
@TotalCount INT OUT
AS
DECLARE @SQL NVARCHAR(2000)
SET @SQL ='SELECT @TotalCount=COUNT(1) '+@From+' '+@Condition+' '
EXEC SP_EXECUTESQL @SQL,N'@TotalCount INT OUTPUT', @TotalCount OUTPUT
DECLARE @ExeSQL NVARCHAR(4000)
DECLARE @Count NVARCHAR(10)
DECLARE @LastRow NVARCHAR(10)
SET @Count=CONVERT(INT,@PageSize)*CONVERT(INT,@PageIndex)
SET @LastRow=@TotalCount
PRINT @LastRow
SET @ExeSQL='WITH TempList AS
(SELECT TOP('+@LastRow+') ROW_NUMBER()OVER('+@SortBy+')AS Rows ,'+@Fields+' '+@From+' '+@Condition+')
SELECT TOP ('+@PageSize+') * FROM TempList WHERE Rows>='+@Count+''
--PRINT @ExeSQL
EXEC sp_sqlexec @ExeSQL
最新文章
- .Net多线程编程—System.Threading.Tasks.Parallel
- SpringMVC 自动封装枚举类的方法
- Design3:使用HierarchyID构建数据的分层结构
- String的两种生成方式
- SNF开发平台WinForm之十四-站内发送系统信息-SNF快速开发平台3.3-Spring.Net.Framework
- Xcode-显示代码行数
- 使用php递归计算目录大小
- http://blog.csdn.net/clementad/article/details/47403185
- B树索引
- Microsoft StreamInsight install
- T4模板试水篇1_入门
- IMAX公司CEO:进军VR产业,打造VR体验中心
- 骑士(树形dp)
- Rational AppScan 标准版可扩展性和二次开发能力简介
- 阿里云轻量应用服务器debian8.9用apache多端口搭建多站点
- csv导入数据到mongodb3.2
- 【python深入】获取对象类型及属性
- 启动及更改tomcat 配置
- eclipse打war包编译文件不更新
- Centos7 搭建lnmp环境 (centos7+nginx+MySQL5.7.9+PHP7)