是否有任何系统存储过程在SQL Server 2005中报告数据库本身的统计信息和元数据?
我需要的是快速输出表格列表,每个表格的大小,每个表格中的行数等等。单个表和元数据的存储过程也很有用。
建议表示赞赏。
答案 0 :(得分:2)
是的,数据字典表可以让你这样做。数据字典中的主要表格是sys.objects,sys.columns,sys.indexes,sys.foreign_keys和sys.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
等...表格。
事实上,sysobjects
是SQL SErver2000
中的一个表格,但在SQL 2005
中,它被实现为view
,并保留以保持向后兼容性。