分页存储过程中,采用下面的语句获取记录总数耗时0秒
select @RecordsCount=isnull(SCOPE_IDENTITY(),0)--计算记录总数具体上下文如何操作请查看下面的内容,有注释不做祥解:发布两个大数据集通用分页存储过程,欢迎大家和我联系共同探讨改进方法,同时我也会及时将更新内容发布在下面的网址 
http://www.thinksea.com/thinksea/show.aspx?id=92db4c46-2216-4b24-a72b-aa27fcf82e50

解决方案 »

  1.   

    谢谢楼上。
    但是,在你的那个存储过程中(最后一个),仍找不到where句子,如果没有where,我觉得也没必要你这么麻烦了。set @sql=N'SELECT '+@TempFieldName+ N'=identity(int,1,1),'+@KeyFieldName+N' INTO #tb1 from'+@QueryString+@FieldOrder+N'select'+@FieldShow+N' from'+@QueryString+N' where'+@KeyFieldName+N' in(select top '+cast(@PageSize as nvarchar(10))+@KeyFieldName+N' from #tb1 where' + @TempFieldName + N'>'+cast(@PageIndex*@PageSize as nvarchar(10))+N')'+@FieldOrder+N'
      

  2.   

    select   @RecordsCount=isnull(SCOPE_IDENTITY(),0)这条语句是在分页过程中使用的,这条语句count符合筛选条件的总记录数,因为使用了之前的查询结果,所以这样做速度会很快。如果是统计数据表中全部记录总数的话这样做就没有必要了,可以看看是否能用上游标之类的概念。