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

Posted

技术标签:

【中文标题】如何列出 SQL Anywhere 中的所有用户表及其行数?【英文标题】:How to list all the user tables in SQL Anywhere along with their rowcount? 【发布时间】:2013-11-08 18:15:59 【问题描述】:

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

【问题讨论】:

【参考方案1】:

这很简单:

select table_name, count
from systable
where primary_root<>0 and creator=1
order by 1

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

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

希望这会有所帮助...

更多信息:从 SQL Anywhere 10 开始,systable 和 syscolumn 仅支持旧版向后兼容视图,而 Sybase 建议改用较新的系统表...因为我使用的是版本 9 和 11,所以我坚持使用这些。

【讨论】:

请注意,primary_root0 将不会列出任何没有主键的表,因此您可能会错过一些重要的表。

以上是关于如何列出 SQL Anywhere 中的所有用户表及其行数?的主要内容,如果未能解决你的问题,请参考以下文章

如何列出 SQL Server 中的所有连接?

如何使用 Squirrel SQL 列出数据库中的所有表?

如何在单个结果集中列出 SQL Server 中所有数据库中的所有表?

使用 SQL 列出表中的所有列 [重复]

SQL:如何在数据库中的所有视图中搜索 ID 并列出提供结果的视图和列名称? [复制]

如何在 SAP SQL Anywhere 中将 UTC 时间戳转换为命名时区?