首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSDT项目中的链接服务器导致数据库漂移

SSDT项目中的链接服务器导致数据库漂移
EN

Stack Overflow用户
提问于 2014-04-07 11:36:55
回答 2查看 802关注 0票数 1

我使用SSDT (VS 2012)来维护和部署我们的数据库。

最近,我们向主数据库项目添加了一个链接服务器,并且它第一次很好地部署。即将到来的部署到相同的db-server /数据库由于数据库漂移而失败,从而产生错误:

SQL00000:数据库已经脱离其注册的数据层应用程序。 对象LinkedServer已经存在于具有不同定义的数据库中,并且不会被更改。

注意:当出现此错误时,没有对数据库进行任何更改。

链接服务器配置如下(删除特定于客户的数据):

代码语言:javascript
复制
EXEC sp_addlinkedserver   
       @server=N'LinkedServer', 
       @srvproduct=N'',
       @provider=N'SQLNCLI', 
       @datasrc=N'SrcPath';

脚本文件将Build设置为Build,并作为模式的一部分进行部署。

我们使用的发布配置文件设置为“数据库偏离注册版本时的块发布”设置。更改此设置不是一个选项,因为如果数据库漂移,我们希望停止发布。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-09 19:52:20

你把它作为预部署脚本添加了吗?如果是这样的话,请考虑围绕它编写一些逻辑来检查它是否存在。我想不出为什么要将它部署为“构建”脚本,因为每次部署时,它都会尝试完成上述操作。

票数 1
EN

Stack Overflow用户

发布于 2014-04-10 06:10:34

使用部署前脚本解决了问题。不过,SSDT中的链接服务器模板是默认创建的,其生成操作设置为Build。因此,我认为应该让将链接服务器作为模式的一部分。

代码语言:javascript
复制
IF NOT EXISTS(SELECT * FROM sys.servers WHERE is_linked = 1 and name = 'LinkedServer')
BEGIN
EXEC sp_addlinkedserver   
           @server=N'LinkedServer', 
           @srvproduct=N'',
           @provider=N'SQLNCLI', 
           @datasrc=N'SrcPath';
END
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22911302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档