SQL1:
select decode(t.num_rows, 0, t.table_name, null) 无数据的表,
decode(t.num_rows, 0, null, t.table_name) 有数据的表
from user_tables t
where t.table_name in (SELECT t1.table_name FROM All_All_Tables t1);
SQL2
select decode(t.num_rows, 0, t.table_name, null) 无数据的表,
decode(t.num_rows, 0, null, t.table_name) 有数据的表
from user_tables t
WHERE t.table_name LIKE 'AC%';
declare @tablename varchar(300)
declare curtablelist cursor for select name from sysobjects where xtype='u'
open curtablelist
fetch next from curtablelist into @tablename
while @@fetch_status=0
begin
exec('if not exists(select * from '+@tablename+' ) print '''+@tablename+'''')
fetch next from curtablelist into @tablename
end
close curtablelist 这个用游标 显示无数据的表
收集所有表的统计信息,然后查看all_all_tables的 row_num列 为0的就是空表不为0的就不是空表,null值就是没有收集统计信息。
select count(all_all_tables.*) ,t.table_name from all_all_Tables t; 我也新学 看看行不。