ALTER proc up_public_page
@PageSize int,
@CurrPage int,
@SearchSql NVarChar(4000),--搜索条件where
@strcode nvarchar(40), --id
@strtable nvarchar(40) , --表名
@strview nvarchar(40),--视图名
@docount int
AS
declare @queryStr nvarchar(1000)
declare @keyField nvarchar (200)
declare @pageNumber int
--set @SearchSql=" where 1=1 and gotime>='2004-04-02' "
set @queryStr ='* from '+@strview+' '+@SearchSql+ ' order by '+@strcode +' desc '
set @keyField=@strcode
set @pageNumber=@CurrPage-1
BEGIN
DECLARE @sqlText AS nvarchar(4000)
DECLARE @sqlTable AS nvarchar(4000)
SET @sqlTable = 'SELECT TOP ' + CAST((@pageNumber + 1) * @pageSize AS varchar(30)) + ' ' + @queryStr
SET @sqlText =
'SELECT TOP ' + CAST(@pageSize AS varchar(30)) + ' * ' +
'FROM (' + @sqlTable + ') AS tableA ' +
'WHERE ' + @keyField + ' NOT IN(SELECT TOP ' +
CAST(@pageNumber * @pageSize AS varchar(30)) + ' ' + @keyField +
' FROM (' + @sqlTable + ') AS tableB)'
print (@sqlText)
EXEC (@sqlText)
END