架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 15353|回复: 1

[资料] sql server万能分页存储过程

[复制链接]
发表于 2016-7-8 12:01:22 | 显示全部楼层 |阅读模式
  1. USE [xxx]
  2. GO
  3. /****** Object:  StoredProcedure [dbo].[p_Page]    scrip{过滤}t Date: 08/07/2016 11:56:36 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. -- =============================================
  9. -- Author:                ITSVSE
  10. -- Create date: 2015/11/04
  11. -- Descrip{过滤}tion:        分页
  12. -- =============================================
  13. ALTER PROCEDURE [dbo].[p_Page]
  14.         @PageIndex INT=1,
  15.         @PageSize INT=10,
  16.         @TbName VARCHAR(50),
  17.         @WhereStr NVARCHAR(1000)=NULL,
  18.         @OrderBy VARCHAR(50)=' ORDER BY ID',
  19.         @Total BIGINT OUTPUT
  20. AS
  21. BEGIN
  22.         SET NOCOUNT ON;
  23.         SELECT @Total=0
  24.         DECLARE @strSQL nvarchar(4000) -- 主Sql          
  25.         IF @WhereStr='' OR @WhereStr IS NULL
  26.         BEGIN               
  27.                 SET @strSQL='SELECT @Total=COUNT(0) FROM ['+@TbName +'] WHERE 1=1 '
  28.                 EXEC sp_executesql @strSQL,N'@Total BIGINT OUTPUT',@Total OUTPUT;  
  29.                 SET @strSQL='SELECT * FROM ['+@TbName+'] WHERE ID IN (SELECT ID FROM (SELECT ID,ROW_NUMBER() OVER ('+@OrderBy+') AS num FROM ['+@TbName+']) AS settable WHERE num BETWEEN '+STR(((@PageIndex-1)*@PageSize)+1)+' AND '+STR(@PageIndex*@PageSize) +')'               
  30.         END
  31.         ELSE
  32.         BEGIN
  33.                 PRINT 'NOT NULL'
  34.                 SET @strSQL='SELECT @Total=COUNT(0) FROM ['+@TbName +'] WHERE 1=1 '+@WhereStr
  35.                 EXEC sp_executesql @strSQL,N'@Total BIGINT OUTPUT',@Total OUTPUT;  
  36.                 SET @strSQL='SELECT * FROM ['+@TbName+'] WHERE ID IN (SELECT ID FROM (SELECT ID,ROW_NUMBER() OVER ('+@OrderBy+') AS num FROM ['+@TbName+'] WHERE 1=1 '+@WhereStr+ ') AS settable WHERE num BETWEEN '+STR((@PageIndex-1)*@PageSize+1)+' AND '+STR(@PageIndex*@PageSize) +')'
  37.         END
  38.         EXEC(@strSQL)       
  39. END
复制代码


sql万能分页存储过程




上一篇:A recognition error occurred. near line 1, column 10
下一篇:Uncaught TypeError: Cannot read property 'style' of undefined
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2016-7-8 14:29:15 | 显示全部楼层
万能的?
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-7-18 09:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表