有没有快速的方法来报告SQL Server 2005中的数据库元数据?

时间:2009-01-18 11:31:32

标签: sql-server reporting database-metadata

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

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

建议表示赞赏。

3 个答案:

答案 0 :(得分:2)

是的,数据字典表可以让你这样做。数据字典中的主要表格是sys.objectssys.columnssys.indexessys.foreign_keyssys.sql_modules。有关使用系统数据字典将数据库反向工程为SQL脚本的各种查询的示例,请查看this stackoverflow posting.

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

答案 1 :(得分:2)

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

sp_helpdb dbname
sp_help objectname
sp_spaceused tablename

答案 2 :(得分:2)

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

事实上,sysobjectsSQL SErver2000中的一个表格,但在SQL 2005中,它被实现为view,并保留以保持向后兼容性。