如何限制部署后脚本在 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 构建后事件