ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MSSQL—存储过程分页

2020-04-02 17:52:42  阅读:283  来源: 互联网

标签:SUFSQL 存储 VARCHAR 分页 RecordCount CONVERT SQL MSSQL SELECT


SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[GetPagingStr]
  @PRESQL VARCHAR(8000),  --前部分语句,SELECT内容
  @SUFSQL VARCHAR(8000),  --后部分语句,从FROM开始
  @SQL VARCHAR(8000) OUTPUT, --完整分页语句
  @PageSize int,
  @PageNum int,
  @RecordCount int OUTPUT
   
WITH ENCRYPTION
AS

IF @PageSize>0 AND @PageNum>0 --需要分页
BEGIN
--执行SQL
SELECT @SQL=@PRESQL + @SUFSQL + ') as PageTable where row_num between (' + CONVERT(VARCHAR(8),@PageNum) + '-1)*' + CONVERT(VARCHAR(8),@PageSize) + '+1 and ' + CONVERT(VARCHAR(8),@PageSize) + '*' + CONVERT(VARCHAR(8),@PageNum)
END
ELSE
BEGIN--不需要分页
SELECT @SQL=@PRESQL + @SUFSQL + ') as PageTable'
END

--记录总数
DECLARE @COUSQL NVARCHAR(1000)--总条数SQL
SELECT @COUSQL='SELECT @RecordCount=(select count(*) ' + @SUFSQL + ')'
execute SP_EXECUTESQL @COUSQL,N'@RecordCount int output',@RecordCount OUT
GO

 

标签:SUFSQL,存储,VARCHAR,分页,RecordCount,CONVERT,SQL,MSSQL,SELECT
来源: https://www.cnblogs.com/luomingui/p/12621348.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有