惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
GbyAI
GbyAI
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
爱范儿
爱范儿
N
Netflix TechBlog - Medium
U
Unit 42
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园 - 叶小钗
G
Google Developers Blog
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
腾讯CDC

博客园 - zqstc

The following module was built either with optimizations enabled or witherout debug information QQQQQQQ Java学习路线图 SQL 链接服务器及权限限制 apache与tomcat整合 eclipse学习 Eclipse3.6版本汉化 Eclipse 的版本历史 MOSS2007下载 MOSS安装全过程 SQL简繁体转换 SQL2000 递归问题 Tomcat+JSP学习一 JavaScript---radio组 Office2003关联的word文档图标无法显示解决方案 用于主题检测的临时日志(f328f8e5-34df-4189-bccc-47d1025dc7dd - 3bfe001a-32de-4114-a6b4-4005b770f6d7) wa gaga Requested registry access is not allowed(不允许所请求的注册表访问权) SQL学习 continue~~
sql 2005 分页
zqstc · 2011-06-12 · via 博客园 - zqstc

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


ALTER PROCEDURE [dbo].[sp_Paging_RowNumber]
 @SqlStmt nvarchar(max),
 @PageIndex int = 0,
 @PageSize int = 10,
 @SqlCountStmt nvarchar(max)
AS
BEGIN

 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

 /*Default Page Number*/
 IF @PageIndex < 0 AND @PageSize < 0
 BEGIN
 
    /*Execute dynamic query*/ 
 EXEC( '
   WITH TempTCE AS (' + @SqlStmt + ')

   SELECT *
   FROM TempTCE
    '
 )

 END

 ELSE
 BEGIN

 IF @PageIndex < 0
  SET @PageIndex = 0

    DECLARE @strStartRowNumber varchar(50)
 DECLARE @strEndRowNumber varchar(50)
 SET @strStartRowNumber = CAST( ((@PageIndex)*@PageSize+1) AS varchar(50))
 SET @strEndRowNumber = CAST( (@PageIndex + 1)* @PageSize AS varchar(50))

    /*Execute dynamic query*/ 
 EXEC( '
   WITH TempTCE AS (' + @SqlStmt + ')

   SELECT *
   FROM TempTCE
   WHERE RowNumber BETWEEN ' + @strStartRowNumber + ' AND '+ @strEndRowNumber + '
    '
 )
 
 END

 EXEC( @SqlCountStmt )

END