USE [Ecological] GO /****** Object: StoredProcedure [dbo].[SP_Ecological] Script Date: 2016/3/24 15:02:15 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* *************************************************************** ** 分页存储过程 ** *************************************************************** 参数说明: 1.CurrentPage :当前页码 2.PageSize :分页尺寸 3.SQL:用于自定义查询语句 4.tempTableName:临时表名称 ***************************************************************/ ALTER PROCEDURE [dbo].[SP_Ecological] ( @CurrentPage int = 1, @PageSize int = 10, @SQL nvarchar(max), @tempTableName nvarchar(max) ) AS DECLARE @strEndRow varchar(500) DECLARE @strStartRow varchar(500) DECLARE @strSQL1 VARCHAR(MAX) DECLARE @strSQL2 VARCHAR(MAX) DECLARE @strSQL3 VARCHAR(MAX) SET @strEndRow = CAST(@PageSize*@CurrentPage AS varchar(500)) SET @strStartRow = CAST((@PageSize*(@CurrentPage-1) + 1) AS varchar(500)) SET @strSQL1=‘if object_id(‘‘tempdb..‘+@tempTableName+‘‘‘) is not null Begin drop table ‘+ @tempTableName+‘ End‘ SET @strSQL2=‘ SELECT identity(int,1,1) as ID,* into ‘ +@tempTableName+ ‘ FROM (‘+@SQL+‘) as t‘ SET @strSQL3=‘ select * from ‘+@tempTableName+‘ where id>=‘+@strStartRow+‘ and id<=‘+@strEndRow+‘‘ EXEC(@strSQL1+ @strSQL2+@strSQL3)