dxz3721 发表于 2005-10-20 11:16:21

如何用存储过程列出所有用户表及其记录数?

<P>如何用存储过程列出所有用户表及其记录数?</P>
<P>结果样板如下:</P>
<P>表名      |记录数</P>
<P>talbe1       20</P>
<P>table2      50</P>
<P>……</P>

tramplai 发表于 2005-10-20 16:30:57

<P>你可以通过系统表:sysobjects ,sysindexes</P>

flybean 发表于 2005-10-20 21:32:05

或者使用row_count()函数,注意版本。

dxz3721 发表于 2005-10-21 08:15:58

<P>sybase11.5;294个表名;</P>
<P>1、创建临时表(保存所有表名),</P>
<P>2(问题)、利用游标,扫描临时表,边扫边逐行统计表记录,但该版本不认@@FETCH_STATUS和FETCH NEXT ,我该如何实现WHILE循环?</P>
<P>3(问题)、SQL语句可以定义数组吗?</P>
<P>4(问题)、我挨逐表SELECT COUNT(*) FROM <STRONG><U>tablename</U></STRONG>,此处tablename</P>
<P>要是能用变量就好了。</P>
<P>过程前半部如下:</P>
<P>CREATE PROCEDURE dbo.Pro_CountAllTableRowList;1   <BR>AS <BR>    BEGIN <BR>    declare @Rcount int,@Tname char(20)<BR>    create table #TempAllTableRowsCount<BR>    (name varchar(30) not null,<BR>   rowscount int null)<BR>    insert #TempAllTableRowsCount(name)<BR>    select name <BR>    from sysobjects <BR>    where type = 'U'<BR>    order by name<BR>   <BR>   -------------------<BR>   update #TempAllTableRowsCount<BR>   set rowscount=(select count(*) from WebConnection)<BR>   where name='WebConnection'<BR>   ----------------<BR>   --select * from #TempAllTableRowsCount<BR>      /*select count(*) from WebConnection<BR>      select count(*) from WebData<BR>      select count(*) from WebDocumentType<BR>      select count(*) from WebSynchronize<BR>      select count(*) from WebTemplate</P>
<P>……</P>
<P>……</P>

dxz3721 发表于 2005-10-21 12:28:54

<P>之所以想要这个列表,是因为想检查新数据库中表记录倒入(bcp)是否和原数据库中的表的记录条数一样.</P>
<P>只是想验证一下,放心一点.</P>
页: [1]
查看完整版本: 如何用存储过程列出所有用户表及其记录数?

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

Mail To:Admin@SybaseBbs.com