有没有办法将SQL Server数据库图表复制到另一台服务器?
我找到了this并进行了修改,只复制了一张图表:
INSERT INTO dbB.dbo.sysdiagrams
SELECT [name],[principal_id],[version],[definition]
FROM dbA.dbo.sysdiagrams
Where name = 'MyDiagramName'
但我需要将其复制到另一个服务器(开发到生产)。
我不想创建链接服务器来执行此操作。 ( 更新说明 )背后的原因是我希望将图表包含在升级脚本中。我对数据库进行了更改以支持新版本(新表等),我希望该图表是升级脚本的一部分。所以我最好把它放在SQL脚本中。如果一个分离的文件随后手动导入,它可以完成这项工作,但这不是最好的。
所以我需要将图表定义'保存'到一个文件以某种方式在另一台服务器上恢复它。
答案 0 :(得分:5)
答案 1 :(得分:2)
首先:从Source Server
内的Destination Server
创建一个链接服务器。
对于创建Link Server
,请使用this Link
第二:使用此
USE DestinationDatabase
DELETE sysDiagrams
WHERE name IN ( SELECT name
FROM <LinkServerName>.SourceDatabase.dbo.sysDiagrams )
SET IDENTITY_INSERT sysDiagrams ON
INSERT sysDiagrams
( name ,
principal_id ,
diagram_id ,
version ,
definition
)
SELECT name ,
principal_id ,
diagram_id ,
version ,
definition
FROM <LinkServerName>.SourceDatabase.dbo.sysDiagrams
SET IDENTITY_INSERT sysDiagrams OFF
答案 2 :(得分:-1)