SqlServer导出关系图到.sql文件

  SqlServer导出关系图到.sql

Vegeta原创:

SqlServer2008R2自带的数据库关系图,方便我们可视化管理数据库表,提供更友好的数据库架构管理方式,但是如果将它导出到.sql文件呢?

我们都知道数据库模型图是存在系统表[sysdiagrams]之中的,虽然SqlServer2008R2数据库下的“任务——导出数据”提供了将表相同的数据库模型图导入另一表,但是却不能将其导出到.sql文件。

废话不多说了,建立一个Test的测试库,随便建立一个表也叫test,建立一个数据库模型图,将test表加入其中。效果如下:

执行如下sql将数据库模型图放入一个中间表:

SELECT * into 数据库模型图 FROM dbo.sysdiagrams;

选择Test数据库,右键 任务- >生成脚本->下一步->选择特定数据库对象

下一步->高级->选择导出数据和架构

确定->选择一个合适的sql保存位置->下一步-》下一步->完成;

打开生成的脚本在最后一行追加粘贴如下sql:

CREATE TABLE [dbo].[sysdiagrams]

(

[name] [sys].[sysname] NOT NULL,

[principal_id] [int] NOT NULL,

[diagram_id] [int] NOT NULL IDENTITY(1, 1),

[version] [int] NULL,

[definition] [varbinary](max) NULL

) ON [PRIMARY] TEXTIMAGE_ON[PRIMARY]

GO

ALTER TABLE [dbo].[sysdiagrams] ADD CONSTRAINT [PK__sysdiagr__C2B05B61023D5A04]PRIMARY KEY CLUSTERED  ([diagram_id]) ON [PRIMARY]

GO

ALTER TABLE [dbo].[sysdiagrams] ADD CONSTRAINT [UK_principal_name]UNIQUE NONCLUSTERED  ([principal_id], [name]) ON [PRIMARY]

GO

EXEC sp_addextendedpropertyN'microsoft_database_tools_support', 1, 'SCHEMA', N'dbo', 'TABLE', N'sysdiagrams', NULL, NULL

GO

 

INSERT sysdiagrams(name,principal_id,[version],[definition])

SELECT name,principal_id,[version],[definition] FROM [数据库模型图];

Go

建立新数据Test1,执行拼合的脚本效果如下:

打开数据库关系图,效果和原来一样。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值