如何列出SQL Anywhere中的所有用户表及其行数?

maf*_*oft 9 sql sybase sqlanywhere

我想在我的数据库中列出所有可用的表,并能够按行计数排序和过滤.

maf*_*oft 11

这很简单:

select table_name, count
from systable
where primary_root<>0 and creator=1
order by 1
Run Code Online (Sandbox Code Playgroud)

或者如何添加列数和名称?

select t.table_name, t.count rows, count(*) cols,
  list(c.column_name order by c.column_id) col_list
from systable t
left outer join syscolumn c on c.table_id=t.table_id
where t.primary_root<>0 and t.creator=1
group by t.table_name, t.count
order by 1
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助...

更多信息:systable和syscolumn,自SQL Anywhere 10以来,只有遗留向后兼容性视图,Sybase建议使用更新的系统表...因为我使用的是版本9和11,所以我坚持使用这些.

  • 请注意,primary_root&lt;&gt;0 将不会列出任何没有主键的表,因此您可能会错过一些重要的表。 (2认同)