首页 > 数据库技术 > 详细

SqlServr分页存储过程的写法

时间:2016-08-29 22:40:29      阅读:338      评论:0      收藏:0      [点我收藏+]
CREATE PROCEDURE [dbo].[GetDataByPager]
(    
   --从第几条数据取
   @startIndex INT,
   --分页的表
   @tableName VARCHAR(50),
   --每次取多少条
   @pageSize INT=5,
   --条件
   @condition VARCHAR(1000)=‘1=1‘,
   --通过Id进行排除  
   @key VARCHAR(20)=‘id‘
)AS
BEGIN
  --通过主建排除法 不需要进行排序
  DECLARE @TopCount INT
  --SET @TopCount=(@pageIndex-1)*@pageSize
  DECLARE @SQL  VARCHAR(1000)
  SET @SQL=‘select  TOP ‘ +CONVERT(VARCHAR(20),@pagesize)+‘ * FROM ‘+@tableName
           +‘ WHERE ‘+ @condition+‘ and ‘+@key+‘ NOT IN(SELECT TOP  ‘ +CONVERT(VARCHAR(20),@startIndex)+@key+‘ FROM ‘+@tableName+‘);‘
		   --返回的总条数
  SET @SQL =@SQL+‘ SELECT COUNT(*) FROM ‘+@TableName+‘ WHERE ‘+@condition
  --PRINT(@SQL)
  EXEC(@SQL)
END

 

SqlServr分页存储过程的写法

原文:http://www.cnblogs.com/sunliyuan/p/5819844.html

(5)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!