SQL 数据库图表提取
SQL DB Diagram Extract
我正在使用 SQL Server 2011 并且需要创建可视化表示(图表)。当前结构在表之间没有关系(外键),并且存在没有任何主键的表。
我已经尝试使用 SQL 数据库图表,但如果数据库本身没有发生变化,就无法在表之间添加任何关系。
我想在不做任何更改的情况下绘制关系。
是否有任何免费的 DB Diagram 软件可供我使用以实现此目的?我已经尝试过 DbVisualizer,但遇到了与 SQL.
中的图表相同的问题
对于您的情况,我会执行以下操作:
为您的数据库生成脚本(仅限模式)(正如@Serg 已经建议的那样)
您可以使用 SSMS
执行此操作:右键单击您的数据库 - Tasks - Generate Scripts
。 Select 所有 table,然后在 Advanced
、select Schema only
下 Types of data to script
。保存脚本并在某些测试环境中 运行 生成数据库的 schema only
副本。 (如果在同一台服务器上执行此操作,您可能需要稍微更改脚本,为新数据库指定另一个名称)
动态地尝试“猜测”外键关系ps
因为你有 500+ tables,你可以尝试让 this script 工作
你(当然它需要一些测试和调整来适应你的
案例),但我在以下场景中使用了它并且它起作用了。
希望您有一个命名约定。在此脚本中,假定引用的键的名称相同,但这可以配置。
因此,我创建了以下 tables:
CREATE TABLE test (testid int identity(1,1) UNIQUE, description varchar(10))
CREATE TABLE test_item (id int identity(1,1) UNIQUE, testid int)
以及主键上的以下索引(通常,您也应该有它们)
CREATE CLUSTERED INDEX [ix_testid] ON [dbo].[test]([testid] ASC)
CREATE CLUSTERED INDEX [ix_testitemid] ON [dbo].[test_item]([id] ASC)
我没有创建外键关系。
接下来我 运行 来自 Automatically guessing foreign key constraints 文章的脚本,我设法得到以下结果:
执行从此脚本生成的所有 ALTER
语句,您可以在新数据库中创建关系 ps - 从该数据库生成图表,您就完成了! :)
ps。我建议您逐步测试它,例如先使用一个 table 然后添加其他并检查结果。
您可以尝试我的小测试的工作演示 here.
祝你好运!
我正在使用 SQL Server 2011 并且需要创建可视化表示(图表)。当前结构在表之间没有关系(外键),并且存在没有任何主键的表。
我已经尝试使用 SQL 数据库图表,但如果数据库本身没有发生变化,就无法在表之间添加任何关系。
我想在不做任何更改的情况下绘制关系。
是否有任何免费的 DB Diagram 软件可供我使用以实现此目的?我已经尝试过 DbVisualizer,但遇到了与 SQL.
中的图表相同的问题对于您的情况,我会执行以下操作:
为您的数据库生成脚本(仅限模式)(正如@Serg 已经建议的那样)
您可以使用
SSMS
执行此操作:右键单击您的数据库 -Tasks - Generate Scripts
。 Select 所有 table,然后在Advanced
、selectSchema only
下Types of data to script
。保存脚本并在某些测试环境中 运行 生成数据库的schema only
副本。 (如果在同一台服务器上执行此操作,您可能需要稍微更改脚本,为新数据库指定另一个名称)动态地尝试“猜测”外键关系ps
因为你有 500+ tables,你可以尝试让 this script 工作 你(当然它需要一些测试和调整来适应你的 案例),但我在以下场景中使用了它并且它起作用了。
希望您有一个命名约定。在此脚本中,假定引用的键的名称相同,但这可以配置。
因此,我创建了以下 tables:
CREATE TABLE test (testid int identity(1,1) UNIQUE, description varchar(10))
CREATE TABLE test_item (id int identity(1,1) UNIQUE, testid int)
以及主键上的以下索引(通常,您也应该有它们)
CREATE CLUSTERED INDEX [ix_testid] ON [dbo].[test]([testid] ASC)
CREATE CLUSTERED INDEX [ix_testitemid] ON [dbo].[test_item]([id] ASC)
我没有创建外键关系。
接下来我 运行 来自 Automatically guessing foreign key constraints 文章的脚本,我设法得到以下结果:
执行从此脚本生成的所有 ALTER
语句,您可以在新数据库中创建关系 ps - 从该数据库生成图表,您就完成了! :)
ps。我建议您逐步测试它,例如先使用一个 table 然后添加其他并检查结果。 您可以尝试我的小测试的工作演示 here.
祝你好运!