2

是否有任何系统存储过程来报告 SQL Server 2005 中数据库本身的统计信息和元数据?

我需要的是一种快速输出表列表、每个表的大小、每个表中的行数等的方法。单个表和元数据的存储过程也很有用。

建议表示赞赏。

4

3 回答 3

2

是的,数据字典表将允许您这样做。数据字典中的主要表是sys.objectssys.columnssys.indexessys.foreign_keyssys.sql_modules。有关使用系统数据字典将数据库反向工程为 SQL 脚本的各种查询的示例,请查看此 stackoverflow 帖子。

从数据字典中获取空间使用情况有点复杂,但sp_spaceused将为单个表执行此操作。您可以用sp_msforeachtable包装它以遍历一组表并获取所有表的报告。

于 2009-01-18T11:34:04.903 回答
2

查看系统视图,尤其是 information_schema.tables。这些 procs 还将获得您正在寻找的大量数据。

sp_helpdb dbname
sp_help objectname
sp_spaceused tablename
于 2009-01-18T11:35:45.510 回答
2

您可以使用视图,而不是直接查询sysobjectsetc... 表。INFORMATION_SCHEMA

实际上,sysobjects是 中的表SQL SErver2000,但在 中SQL 2005,它被实现为view,并且保留它以保持向后兼容性。

于 2009-01-18T11:50:54.683 回答