0

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

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

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

例如 :

表 1 - Col1 ;Col2 ;Col2

表 2 - Col1 ;Col2 ;Col3 ...

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

如果已经问过这个问题,请道歉。

谢谢

4

2 回答 2

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'
于 2014-02-17T16:27:47.137 回答
1

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

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 脚本,它会生成一个图表。

简而言之,想象一个适合您的预算并且您感到满意的解决方案。

在此处输入图像描述

于 2014-02-17T18:02:52.353 回答