通过存储过程进行分页查询的SQL示例
--创建人:zengfanlong --创建时间:2014-7-28 10:51:15 --说明:根据公司简写代码获取当前待同步的气瓶档案数据(分页获取) ALTER PROCEDURE [UP_GasBottles_GetSyncData_ByPage] ( @CompanyAbbrCode NVARCHAR(255) = ‘‘ , @LatastRowVersion_BigInt BIGINT , @CurrentMaxRowVersion_BigInt BIGINT , @StartPageIndex INT = 0 , @EndPageIndex INT = 0 , @TotalCount INT OUTPUT ) AS BEGIN --(1)、定义SQL查询 SELECT * INTO #tempTb FROM dbo.GasBottles AS gs WITH ( NOLOCK ) WHERE ISNULL(GasBottleNo, ‘‘) <> ‘‘ AND REPLACE(( SUBSTRING(gs.GasBottleNo, 1, 5) ), ‘-‘, ‘‘) = @companyAbbrCode AND ( CAST([RowVersion] AS BIGINT) > @LatastRowVersion_BigInt AND CAST([RowVersion] AS BIGINT) <= @CurrentMaxRowVersion_BigInt ) IF ( @StartPageIndex <= 0 AND @EndPageIndex <= 0 ) BEGIN SELECT * FROM #tempTb --返回总页数 SET @TotalCount = ( SELECT COUNT(1) FROM #tempTb ) END ELSE BEGIN --分页获取数据 SELECT ROW_NUMBER() OVER ( ORDER BY GETDATE() ) AS ‘Row‘ , * INTO #tempAll FROM #tempTb SELECT * FROM #tempAll WHERE Row BETWEEN @StartPageIndex AND @EndPageIndex TRUNCATE TABLE #tempAll DROP TABLE #tempAll END --删除历史表 TRUNCATE TABLE #tempTb DROP TABLE #tempTb END GO
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。