分页中需要先用“select * from table 条件”获取记录内容,然后用“select count(*) from table”获取记录总数;
也就是要分两次进行;现在想在"select * from table 条件"后执行"select @@rowcount"获取记录总数是否可行?会不会存在并发问题;
比如很多语句同时执行时,获取到其它语句的影响行数,从而得到错误的结果?

解决方案 »

  1.   

    select count(*) from table1
    比 select * from table1 
       select @@rowcount 更高效吧.
    应该结果一样的,不过何必为了得到记录数,先执行select * from table1呢?
      

  2.   

    select @@rowcount 是时刻变化的,还是select count(*) from tablename 比较的确定和保险
      

  3.   

    select @@rowcount 是时刻变化的,还是select count(*) from tablename 比较的确定和保险
    ---------------
    每次select后马上取@@rowcount是不会错的.
      

  4.   

    现在想在"select * from table 条件"后执行"select @@rowcount"获取记录总数是否可行?会不会存在并发问题
    --------------------
    SELECT后马上把@@rowcount付给一个变量保存就行了。
      

  5.   

    不是为了得到记录数,先执行select * from table的;
    而是之前要先用到这个语句;后面要用select count(*) from table获得记录数;
    所以现在在考虑能不能把后台的省掉,而直接用@@rowcount;因为select count(*) from table在带某些条件的情况下,速度会比较慢;
    所以想在 select * from table 后直接用select @@rowcount;
    但担心select @@rowcount并不能真正反映出记录数;因为@@rowcount好像是保存最后一条sql语句影响行数的,所以如果并发的情况很多,会不会获得其它语句的影响行数去了?
    ---------------------
    不过何必为了得到记录数,先执行select * from table1呢?
      

  6.   

    看到MSSQL的分页就让人们难受的很……用MySQL分页多容易啊!几个参数,都只需要添加到sql语句里面就OK了MS中的东西,分页弄起来好麻烦的说……
      

  7.   

    用recordset做分页吧,这样就剩了喝多麻烦了
      

  8.   

    主要不是问分页的问题,是问select @@rowcount的问题
      

  9.   

    不管速度的问题,用select * from table只是打个比方,重要的是后面的select @@rowcount能否正常获取记录数据,从而代替select count(*) from table