disk119 发表于 2006-12-26 10:30:02

[求助]一个查询统计的问题

<p>&nbsp;&nbsp;&nbsp; 各位大哥,现在小弟要去统计一个SYBASE里所有的表中的所有记录,要分开统计,这咋整呢。</p><p>&nbsp;&nbsp;&nbsp; 我现在是通过select name from sysobjects where type='u' order by name 现查出表来,然后一个一个用</p><p>select &nbsp; count(*) &nbsp; from &nbsp; tablename 来统计,实在太慢了。有没有先进的方法啊,教教小弟吧。</p><p>&nbsp;&nbsp;&nbsp; 水平太差,只好来问了</p>

l5066113 发表于 2006-12-26 11:44:22

<p>可以写个存储过程,循环做,把每次的结果插入到一张临时表中.</p><p>我没有用过SYBASE,用的是SYBASEIQ,估计类似,下面一段存储过程仅供参考.</p><p>BEGIN</p><p>&nbsp;DECLARE @TABLE_NAME VARCHAR(255);<br/>&nbsp;DECLARE @TABLE_COUNT INTEGER;<br/>&nbsp;&nbsp;&nbsp; DECLARE TABLENAME CURSOR FOR select name from sysobjects where type = 'u' order by name;</p><p>&nbsp;OPEN TABLENAME;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; LOOP1:<br/>&nbsp;&nbsp;&nbsp; LOOP<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; FETCH TABLENAME INTO @TABLE_NAME;<br/>&nbsp;&nbsp;&nbsp;&nbsp; IF @@SQLSTATUS != 0 THEN LEAVE LOOP1 END IF;<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; SET @TABLE_COUNT = (select count(*) from @TABLE_NAME);</p><p>&nbsp;&nbsp;&nbsp;&nbsp; INSERT INTO TMP_TABLE<br/>&nbsp;&nbsp;&nbsp;&nbsp; SELECT @TABLE_NAME, @TABLE_COUNT;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; END LOOP LOOP1;</p><p>&nbsp;DEALLOCATE CURSOR TABLENAME;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; COMMIT;</p><p>END</p>

disk119 发表于 2006-12-26 15:16:54

<p>大概意思知道了,但是太菜了,弄不出来。还有办法没?</p>

l5066113 发表于 2006-12-26 21:32:58

<p>我感觉系统表中好象没有记录表记录数的信息,所以这个还需要循环来实现。java,sh等熟的话,随便写个小程序都可以实现。如果楼主找到其他好的方法也请赐教。</p>

wzq81216 发表于 2007-1-16 10:20:19

ding
页: [1]
查看完整版本: [求助]一个查询统计的问题

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com