这个有点难
关键不是在返回第XX到MM条记录上
而是你的 @selectCmd,用户条件查询语句 
这个仅仅是条件,还是一个完整的查询表达式
即是where条件后的部分,还是'select * from aa'

解决方案 »

  1.   

    先确定一个问题:
    你的 @selectCmd,用户条件查询语句 
    这个仅仅是条件,还是一个完整的查询表达式
    即是where条件后的部分,还是'select * from aa'
      

  2.   

    exec ('select top '+ @PageSize+ ' * from (select top '+ @PageNumber * @PageSize + ' *  from (' + @selectCmd + '))')
      

  3.   

    create proc sp_FetchRecordByPage(@selectCmd varchar(1000),@PageNumber int ,@PageSize int)
    as
    exec ('select top '+ @PageSize+ ' * from (select top '+ @PageNumber * @PageSize + ' *  from (' + @selectCmd + '))')
      

  4.   

    请编写一存储过程,实现按任意查询条件分批返回数据的功能,每批返回记录条数可指定你可以通过WORKING TABLE来实现,用户的“任意查询条件”,“返回记录条数”..条件你可以先保存到一个WORKING TABLE中,并且有一FLG来确定该T-SQL是否运行,再通过另一个CONNECTION来运行该T-SQL语句.这样实现的好处:扩展方便,实现容易,效率较高。