【问题标题】:Is there a quick way to report database metadata in SQL Server 2005?在 SQL Server 2005 中是否有一种快速报告数据库元数据的方法?
【发布时间】:2009-01-18 11:31:31
【问题描述】:

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

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

建议赞赏。

【问题讨论】:

标签: sql-server reporting database-metadata


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    sp_helpdb dbname
    sp_help objectname
    sp_spaceused tablename
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-08-09
        • 1970-01-01
        • 2010-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多