select @execsql = 'select sybid=identity(12),' || @fieldclause || ' into #moy_temptable from ' || @tableclause
end
else
begin
select @execsql = 'select 100000000000 sybid,' || @fieldclause || ' into #moy_temptable from ' || @tableclause
select @bottomstart = 0
end
if @bottomstart = 0
begin
set rowcount @rcount
end
else
begin
select @rcount=(@maxpages-@ipage+1)*@num
set rowcount @rcount
end
if @whereclause<>''
begin
select @execsql = @execsql || ' where ' || @whereclause
end
if @sortclause<>''
begin
if @identityname=''
begin
select @execsql = @execsql || ' order by ' || @sortclause
end
else
begin
select @execsql = @execsql || ' order by ' || @identityname
end
end
if @identityname<>''
begin
select @execsql = @execsql || ' update #moy_temptable set sybid=(select count(1) from #moy_temptable b where a.' || @identityname || '>=b.' || @identityname || ') from #moy_temptable a'
end
if @bottomstart = 0
begin
select @execsql = @execsql || ' select ' || @fieldclause ||' from #moy_temptable where sybid>' || convert(varchar,(@ipage-1)*@num) || ' and sybid <= ' || convert(varchar,@ipage*@num)
end
else
begin
select @execsql = @execsql || ' select ' || @fieldclause ||' from #moy_temptable where sybid <= ' || convert(varchar,(@maxpages-@ipage)*@num+@remainder) || ' and sybid > ' || convert(varchar,(@maxpages-(@ipage+1))*@num+@remainder)