10

すべてのテーブルとその隣のカウントを返したいと思います。それについて行く最も速い方法は何ですか?

Oracleでは次のようなことができますが、Sybaseについてはわかりません。

declare n number;
begin
   for rec in (select object_name from user_objects where object_type='TABLE')
   loop
     execute immediate 'select count(*) from '||rec.object_name into n;
     dbms_output.put_line (rec.object_name||':'||n);
   end loop;
end;
4

7 に答える 7

11

それは、意味する Sybase 製品によって異なります。私の SQL Anywhere (9 および 11) では、ソリューションは機能しませんが、これは機能します。

select table_name, count
from systable
where primary_root<>0 and creator=1
order by 1
于 2013-10-29T14:03:05.673 に答える
4

テーブルには複数のエントリが存在する可能性があるためsystabstats、クエリは次のようになります。

select ob.name, sum(st.rowcnt)
from sysobjects ob, systabstats st 
where ob.type="U"  
and st.id=ob.id 
group by ob.name
order by ob.name
于 2016-04-29T09:08:05.930 に答える
0
select ob.name,st.rowcnt from sysobjects ob, systabstats st  where  b.type='U' 
and st.id=ob.id  and indid=0 order by ob.name
于 2015-06-16T10:24:41.670 に答える