是否有任何系统存储过程来报告 SQL Server 2005 中数据库本身的统计信息和元数据?
我需要的是一种快速输出表列表、每个表的大小、每个表中的行数等的方法。单个表和元数据的存储过程也很有用。
建议表示赞赏。
是否有任何系统存储过程来报告 SQL Server 2005 中数据库本身的统计信息和元数据?
我需要的是一种快速输出表列表、每个表的大小、每个表中的行数等的方法。单个表和元数据的存储过程也很有用。
建议表示赞赏。
是的,数据字典表将允许您这样做。数据字典中的主要表是sys.objects、sys.columns、sys.indexes、sys.foreign_keys和sys.sql_modules。有关使用系统数据字典将数据库反向工程为 SQL 脚本的各种查询的示例,请查看此 stackoverflow 帖子。
从数据字典中获取空间使用情况有点复杂,但sp_spaceused将为单个表执行此操作。您可以用sp_msforeachtable包装它以遍历一组表并获取所有表的报告。
查看系统视图,尤其是 information_schema.tables。这些 procs 还将获得您正在寻找的大量数据。
sp_helpdb dbname
sp_help objectname
sp_spaceused tablename
您可以使用视图,而不是直接查询sysobjects
etc... 表。INFORMATION_SCHEMA
实际上,sysobjects
是 中的表SQL SErver2000
,但在 中SQL 2005
,它被实现为view
,并且保留它以保持向后兼容性。