编写数据库脚本不包括图表,因为它们与表或存储过程不同,它们不是服务器对象;它们作为数据存在于sysdiagrams
表中。
SO上的一个类似问题问如何将SQL Server数据库图表迁移到另一个数据库?
公认的答案是将sysdiagrams
表的内容复制到新数据库中,这样您就可以在脚本中包含表内容。投票最多的答案有一个链接到脚本图表的方式。
我尝试备份然后将数据库恢复到同一台服务器,删除我创建的图表(我只有一个),然后运行以下查询:
INSERT INTO database2.dbo.sysdiagrams
(
NAME
,principal_id
,version
,DEFINITION
)
SELECT NAME
,principal_id
,version
,DEFINITION
FROM database1.dbo.sysdiagrams
该图已成功恢复,但是我确实在恢复的备份上执行了此操作,我应该使用从脚本生成的新数据库对其进行测试。
更新:
我编写了一个数据库脚本,然后从中创建了一个新数据库。尝试使用INSERT
语句重建图表时出现错误
因此,尽管在从脚本创建的新数据库中创建图表似乎并非易事。使用有关脚本图的答案并根据您自己的需要进行修改。
也许您可以进一步调查并发布您自己的答案:)