gpt4 book ai didi

一个基于ROW_NUMBER()的通用分页存储过程代码

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章一个基于ROW_NUMBER()的通用分页存储过程代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

建立好如下的存储过程,以后要分页,直接调用改存储过程就可以了。  注意:数据量大、性能要求高的,请个性化处理。  。

复制代码代码如下

ALTER PROCEDURE [dbo].[COMMON_PROCEDURE_SelectWithPage]  @Sql VARCHAR(5000),  @CurrentPageNo INT,  @PageSize INT,  @TotalNum INT OUTPUT  AS  SET NOCOUNT ON  DECLARE @SqlCmd VARCHAR(5000)  ------------------------------------------ --查询数据  SET @SqlCmd = 'SELECT * FROM (' + @Sql + ') A WHERE RowIndex BETWEEN ' + CONVERT(VARCHAR,(@CurrentPageNo-1) * @PageSize + 1) + ' AND ' + CONVERT(VARCHAR,@CurrentPageNo * @PageSize)  EXEC(@SqlCmd) PRINT (@SqlCmd)  ------------------------------------------ --求记录总数  IF @TotalNum = -1  BEGIN  CREATE TABLE #Temp1(num INT)  INSERT INTO #Temp1  EXEC('SELECT count(*) FROM (' + @Sql + ') A')  SELECT @TotalNum=(SELECT * FROM #Temp1)  DROP TABLE #Temp1  END  用法很简单,但必须在传入的SQL中使用ROW_NUMBER() OVER(...) AS RowIndex :  DECLARE @Sql VARCHAR(5000)  DECLARE @CurrentPageNo INT  DECLARE @PageSize INT  DECLARE @TotalNum INT  SET @CurrentPageNo = 100  SET @PageSize = 10  SET @TotalNum = -1  SET @Sql = ' SELECT *, ROW_NUMBER() OVER (ORDER BY 排序字段) AS RowIndex FROM 表名 A WITH (NOLOCK) '  EXEC [dbo].[COMMON_PROCEDURE_SelectWithPage] @Sql,@CurrentPageNo,@PageSize,@TotalNum OUTPUT  SELECT @TotalNum  。

最后此篇关于一个基于ROW_NUMBER()的通用分页存储过程代码的文章就讲到这里了,如果你想了解更多关于一个基于ROW_NUMBER()的通用分页存储过程代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com