[求助]一个查询统计的问题
<p> 各位大哥,现在小弟要去统计一个SYBASE里所有的表中的所有记录,要分开统计,这咋整呢。</p><p> 我现在是通过select name from sysobjects where type='u' order by name 现查出表来,然后一个一个用</p><p>select count(*) from tablename 来统计,实在太慢了。有没有先进的方法啊,教教小弟吧。</p><p> 水平太差,只好来问了</p> <p>可以写个存储过程,循环做,把每次的结果插入到一张临时表中.</p><p>我没有用过SYBASE,用的是SYBASEIQ,估计类似,下面一段存储过程仅供参考.</p><p>BEGIN</p><p> DECLARE @TABLE_NAME VARCHAR(255);<br/> DECLARE @TABLE_COUNT INTEGER;<br/> DECLARE TABLENAME CURSOR FOR select name from sysobjects where type = 'u' order by name;</p><p> OPEN TABLENAME;<br/> <br/> LOOP1:<br/> LOOP<br/> <br/> FETCH TABLENAME INTO @TABLE_NAME;<br/> IF @@SQLSTATUS != 0 THEN LEAVE LOOP1 END IF;<br/> <br/> SET @TABLE_COUNT = (select count(*) from @TABLE_NAME);</p><p> INSERT INTO TMP_TABLE<br/> SELECT @TABLE_NAME, @TABLE_COUNT;<br/> <br/> END LOOP LOOP1;</p><p> DEALLOCATE CURSOR TABLENAME;<br/> <br/> COMMIT;</p><p>END</p> <p>大概意思知道了,但是太菜了,弄不出来。还有办法没?</p> <p>我感觉系统表中好象没有记录表记录数的信息,所以这个还需要循环来实现。java,sh等熟的话,随便写个小程序都可以实现。如果楼主找到其他好的方法也请赐教。</p> ding
页:
[1]