SQL SERVER分页存储过程
来源:互联网 发布:iphone6splus精仿淘宝 编辑:程序博客网 时间:2024/06/04 17:47
CREATE PROCEDURE [dbo].[ProcGetPageData]
( @TableName VARCHAR(1000), –表名,多表是请使用 tA a inner join tB b On a.AID = b.AID
@PrimaryKey NVARCHAR(100), –主键,可以带表头 a.AID
@Fields NVARCHAR(2000) = ‘*’,–读取字段
@Condition NVARCHAR(3000) = ”,–Where条件
@CurrentPage INT = 1, –开始页码
@PageSize INT = 10, –页大小
@Sort NVARCHAR(200) = ”, –排序字段
@RecordCount INT = 0 OUT
)
AS
DECLARE @strWhere VARCHAR(2000)
DECLARE @strsql NVARCHAR(3900)
IF @Condition IS NOT NULL AND len(ltrim(rtrim(@Condition)))>0
BEGIN
SET @strWhere = ’ WHERE 1=1 ’ + @Condition + ’ ’
END
ELSE
BEGIN
SET @strWhere = ”
END
IF (charindex(ltrim(rtrim(@PrimaryKey)),@Sort)=0)
BEGIN
IF(@Sort=”)
SET @Sort = @PrimaryKey + ’ DESC ’
ELSE
SET @Sort = @Sort+ ’ , ‘+@PrimaryKey + ’ DESC ’
END
SET @strsql = ‘SELECT @RecordCount = Count(1) FROM ’ + @TableName + @strWhere
EXECUTE sp_executesql @strsql ,N’@RecordCount INT output’,@RecordCount OUTPUT
IF @CurrentPage = 1 –第一页提高性能
BEGIN
SET @strsql = ‘SELECT TOP ’ + str(@PageSize) +’ ‘+@Fields
+ ’ FROM ’ + @TableName + ’ ’ + @strWhere + ’ ORDER BY ‘+ @Sort
END
ELSE
**BEGIN
/* Execute dynamic query */
DECLARE @START_ID NVARCHAR(50)
DECLARE @END_ID NVARCHAR(50)
SET @START_ID = CONVERT(NVARCHAR(50),(@CurrentPage-1) * @PageSize + 1)
SET @END_ID = CONVERT(NVARCHAR(50),@CurrentPage * @PageSize)
SET @strsql = ’ SELECT
‘+@Fields+ ’
FROM ‘+@TableName + @strWhere +’
ORDER BY ‘+@Sort+’ OFFSET ‘+@START_ID+’ ROWS FETCH NEXT ’ + CONVERT(nvarchar(50),( CONVERT(int,@END_ID) - CONVERT(int,@START_ID))) +’ ROWS ONLY’
END**
EXEC(@strsql)
RETURN
- SQL Server 分页存储过程
- 分页存储过程(SQL Server)
- SQL Server 分页存储过程
- SQL Server 分页存储过程
- SQL Server 分页存储过程
- SQL Server 分页存储过程
- SQL SERVER 分页存储过程
- SQL Server 分页存储过程
- sql server分页存储过程
- SQL Server分页存储过程
- SQL Server分页存储过程
- sql server 分页存储过程
- sql server存储过程分页
- SQL server分页存储过程
- SQL server 分页存储过程
- Sql Server 分页存储过程
- Sql Server 分页存储过程
- SQL Server 分页存储过程
- 如何把一个String类型的sparql语句,解析出一系列triple
- jQuery如何对div进行排序
- JAVA 实现 AES 加密
- solr不能启动,日志报错could not find collectin imgs
- MySQL SQL操作
- SQL SERVER分页存储过程
- 20个非常有用的Java程序片段
- SQL Antipattern 之 分组查询
- Redis 官方文档
- 程序狗的凝视.js
- jeecg使用总结
- 基于easyui的页面等待提示层,即mask
- set.seed(100)
- 字符编码,URL编码,JavaScript编码函数