首页 > 代码库 > SqlServr分页存储过程的写法

SqlServr分页存储过程的写法

CREATE PROCEDURE [dbo].[GetDataByPager](       --从第几条数据取   @startIndex INT,   --分页的表   @tableName VARCHAR(50),   --每次取多少条   @pageSize INT=5,   --条件   @condition VARCHAR(1000)=‘1=1‘,   --通过Id进行排除     @key VARCHAR(20)=‘id‘)ASBEGIN  --通过主建排除法 不需要进行排序  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分页存储过程的写法