首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSDT -如何:增量更新?

SSDT -如何:增量更新?
EN

Stack Overflow用户
提问于 2015-02-04 12:21:45
回答 3查看 2.9K关注 0票数 2

我正在使用Visual中的数据库项目。

在我的场景中,有几个客户使用不同版本的数据库。

例如,在版本5中的客户,在版本7中的另一个客户。

我提供了版本8的更新。

客户端版本5应该在运行更新到版本8的脚本之前运行“累积”脚本(更新到版本6和7)。

客户端版本7应该运行升级到版本8的内容。

现在有什么自动的方法可以用SSDT?来完成这个任务吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-04 12:43:05

使用msbuild: /p:GetVersion=CXXXX

表单VS,在发布之前获取特定版本(右键单击解决方案资源管理器中的项目)。

您可以针对这两个不同的目标运行此操作,并且将为指定的目标创建发布脚本(每个目标一个)。

如果使用dacpac,则通过与目标进行比较,脚本将在部署时从dacpac自动生成。如果yo想要部署相同的版本,您可以在两个目标上使用相同的dacpac文件,生成的脚本将专门为每个目标创建。

票数 2
EN

Stack Overflow用户

发布于 2015-02-05 09:46:57

当使用SSDT时,部署数据库累积“版本”的概念就消失了(我认为)。必须理解的SSDT的基本概念是声明式数据库开发。我个人对声明性数据库开发的定义:

定义希望数据库架构处于何种状态,而不是如何使其进入该状态。SSDT中的发布引擎将负责使数据库处于这种状态。

简单的示例,您目前在数据库中有一个名为Person的表,并且希望添加一个名为Person.MiddleName的列。在SSDT中定义新列,在发布时,SSDT将发出类似于以下内容的内容:

代码语言:javascript
复制
ALTER TABLE [Person] ADD COLUMN [MiddleName]

关键是您不必编写SQL语句,SSDT为您编写并执行它。在这个场景中,数据库版本的概念消失了。您只需要将数据库更新到SSDT项目中定义的状态。希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2015-02-04 12:45:35

您应该提供dacpac,这是构建的输出,然后给他们部署。

您可以通过SSMS手动部署它,或者给它们一个运行sqlpackage.exe的命令行--这可以执行更新,也可以生成一个脚本来升级他们的数据库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28321262

复制
相关文章

相似问题

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