SqlServr分页存储过程的写法
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