码迷,mamicode.com
首页 > 数据库 > 详细

SqlServr分页存储过程的写法

时间:2016-08-29 22:41:34      阅读:229      评论: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!