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,[deFinition] FROM [数据库模型图];
Go
建立新数据Test1,执行拼合的脚本效果如下:
打开数据库关系图,效果和原来一样。
总结以上是内存溢出为你收集整理的SqlServer导出关系图到.sql文件全部内容,希望文章能够帮你解决SqlServer导出关系图到.sql文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)