如何限制部署后脚本在 Visual Studio 数据库项目中仅运行一次

Posted

技术标签:

【中文标题】如何限制部署后脚本在 Visual Studio 数据库项目中仅运行一次【英文标题】:How to limit post deployment script to run only once in Visual Studio database project 【发布时间】:2012-10-05 03:58:03 【问题描述】:

我们的 Visual Studio 数据库项目中有一个部署后脚本。它用数据填充查找表。问题是每次我们更改架构并生成更新脚本时,部署后脚本都会附加到部署脚本的末尾。有没有办法在 VS2010 中将特定的部署后脚本标记为只运行一次?

【问题讨论】:

【参考方案1】:

免责声明:我来自 ReadyRoll 软件,该软件为数据库部署提供商业工具。

您使用的 DataDude 项目系统和新的 SSDT 项目都不支持一次性脚本。这些项目本质上是声明性的事实意味着,除非该工具具有本地支持的带有数据的查找表填充(目前不支持),否则只能使用“始终运行”来执行操作" 部署后脚本。

如果您还没有使用它,如果您要部署到 SQL Server 2008 或更高版本,则可以考虑使用 MERGE 语句进行查找数据部署。这为您提供了一种有点声明性的方式来填充表,因为您不必在部署之前检查数据是否已经插入。

如果您想尝试一个只运行每个脚本一次的项目系统,您可以考虑命令式 方法(有时称为迁移)。有很多 OSS 可以做到这一点,但是您可能想考虑 ReadyRoll,因为它与 Visual Studio 集成: http://ready-roll.com

【讨论】:

以上是关于如何限制部署后脚本在 Visual Studio 数据库项目中仅运行一次的主要内容,如果未能解决你的问题,请参考以下文章

如何编写 Visual Studio 数据库项目的部署脚本?

如何从 Visual Studio 数据库项目部署特定对象?

如何仅为调试构建运行 Visual Studio 构建后事件

Visual Studio 2008 数据库项目部署基线

如何在 Visual Studio 代码中创建和部署函数应用程序?

部署 SSIS 包时 Visual Studio 2012 崩溃