ALTER PROCEDURE [dbo].[Proc_SentPage]
@pageindex int,
@pagesize int,
@TableName varchar(80),
@viewfield varchar(500),
@where varchar(200),
@allcount INT output
AS
BEGIN
CREATE TABLE #tempTable /**创建临时表**/
(
IndexId INT IDENTITY (1,1) NOT NULL,
ID int
)
begin
exec('insert into #tempTable (id) select id from '+@TableName+' '+@where)
end
select @allcount=(select count(*) from #tempTable)
set @viewfield=replace(@viewfield,',',',a.')
set @viewfield='a.'+@viewfield
exec('select '+@viewfield+' FROM '+@TableName+' a INNER JOIN #tempTable ON a.ID = #tempTable.ID
where indexID>'+@pageSize+'*('+@pageIndex+'-1)' +'AND indexID<='+@pageSize+'*'+@pageIndex )
--释放临时表
DROP TABLE #tempTable
END