我对数据库知之甚少,尤其是 SQL Server 2008。
我必须在一个大型数据库上工作,我没有文档可以帮助我理解每个表包含的内容。
我想做的是展示一种数据库的原型。
例如 :
表 1 - Col1 ;Col2 ;Col2
表 2 - Col1 ;Col2 ;Col3 ...
我只想显示每个表的每一列的名称(可能是类型)。我已经显示了一个模式,但这真的无法阅读(这么多表)。
如果已经问过这个问题,请道歉。
谢谢
我对数据库知之甚少,尤其是 SQL Server 2008。
我必须在一个大型数据库上工作,我没有文档可以帮助我理解每个表包含的内容。
我想做的是展示一种数据库的原型。
例如 :
表 1 - Col1 ;Col2 ;Col2
表 2 - Col1 ;Col2 ;Col3 ...
我只想显示每个表的每一列的名称(可能是类型)。我已经显示了一个模式,但这真的无法阅读(这么多表)。
如果已经问过这个问题,请道歉。
谢谢
试试我刚刚写的这个查询,希望能给你很多你正在寻找的信息
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'
我总是尝试提出最简单的解决方案。想到几个简单的。
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 脚本,它会生成一个图表。
简而言之,想象一个适合您的预算并且您感到满意的解决方案。