如何总结一个数据库? SQL 服务器

Posted

技术标签:

【中文标题】如何总结一个数据库? SQL 服务器【英文标题】:How to summarize a database ? SQL Server 【发布时间】:2014-02-17 16:00:13 【问题描述】:

我对数据库知之甚少,尤其是 SQL Server 2008。

我必须在一个大型数据库上工作,但我没有文档可以帮助我了解每个表包含的内容。

我要做的是展示一种数据库的原型。

例如:

Table1 - Col1 ; Col2 ;Col2

表 2 - Col1 ; Col2 ;Col3 ...

我只想显示每个表的每一列的名称(可能是类型)。 我已经显示了一个架构,但这真的无法阅读(这么多表)。

如果这个问题已经被问过,我们深表歉意。

谢谢

【问题讨论】:

您在寻找图表吗? 您查看过 INFORMATION_SCHEMA.COLUMNS 吗? technet.microsoft.com/en-us/library/ms188348(v=sql.105).aspx 查看系统视图:sys.objects 和 sys.columns。 @Ric 请不要为任何东西建议 INFORMATION_SCHEMA > SQL Server 2005。系统目录视图更加可靠。请参阅 Aaron Bertrand 在 the catalog views 上的帖子 Redgate SQL doc has a 14 day free trial 【参考方案1】:

试试我刚刚写的这个查询,希望能给你很多你正在寻找的信息

SELECT  ss.name AS [Schema_Name]
       ,so.name AS Table_Name
       ,c.name  AS [Column_Name]
       ,st.name AS  [Data_Type]

FROM sys.all_objects so 
        INNER JOIN sys.columns c
ON so.object_id = c.object_id
INNER JOIN sys.schemas ss
ON so.[schema_id] = ss.[schema_id]
INNER JOIN sys.systypes st
ON c.user_type_id = st.xusertype
WHERE so.type = 'U'

【讨论】:

谢谢。我希望一些更水平的东西以避免有这么多行,但你的建议以一种非常简单的方式给了我正在寻找的信息,所以谢谢:)。 @Soji 没问题很高兴它帮助你接受它作为你的答案:)【参考方案2】:

我总是尝试提出最简单的解决方案。想到几个简单的。

1 - sp_help 命令为您提供财富信息。下面的第一个调用为一个表执行它,下面的第二个调用为所有表执行它。

-- Use corect database
USE AdventureWorks2012
GO

-- One table
sp_help 'person.person'
GO

-- All tables
DECLARE @STMT VARCHAR(128) = 'EXEC SP_HELP ' + char(39) + '?' + CHAR(39);
EXEC SP_MSFOREACHTABLE @STMT
GO

2 - 虽然这会为您提供有关数据类型和关系的文本信息,但不会以图形形式提供。

SSMS 具有图表功能,可以显示表之间的关系。我为人员模式中的几个表和销售模式中的一个表创建了一个图表。

此实用程序的缺点是数据类型未显示在图片中。但是,打开属性页面将允许您深入到一个字段(列)并找到它的所有信息。

3 - 最后但并非最不重要的一点是,您始终可以购买性能更好的第三方工具。

我有几个使用 AUTOS 玩具数据库的博客演讲。下图是从 Oracle 的 ERD 包创建的。这个工具的好处是数据类型和关系都显示在图片中。

简而言之,它修复了 SSMS 图表工具的缺点。此外,给定一个来自 DB2、ORACLE 或 SQL Server 的 DDL 脚本,它会生成一个图表。

简而言之,想出一个适合您预算且您觉得满意的解决方案。

【讨论】:

谢谢,这似乎很有用,但我必须处理一个非常大的数据库,并且图表很快变得不可读。使用 sp_help 的解决方案出现了同样的问题,生成了这么多行和不同的表,我的电脑不太喜欢它:)。但是,一旦我确定了哪些表格对我很重要,我将使用您的建议。谢谢。

以上是关于如何总结一个数据库? SQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章

面试题:SQL注入漏洞总结

部分sql注入总结

#yyds干货盘点#sql注入总结

总结MySQL大数据量下如何进行优化

SQL注入文件读写总结

sql开发技巧总结-1