gpt4 book ai didi

sql-server - 多环境场景TFS/SSDT部署

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:00 25 4
gpt4 key购买 nike

这是我目前遇到的场景。在开发环境中,开发人员通常在 DEV SQL Server 中进行更改,然后他们将在 Visual Studio 2013/TFS 中进行架构比较,更新 TFS,然后检查更改。

现在,比如在 DEV 中,数据库中有许多存储过程引用名为 A 的数据库,但是在 SIT 环境中,该数据库称为 B。

当我想将这些存储过程从 TFS 部署到 SIT 环境时,是否有一种(自动)方法将数据库 A 替换为数据库 B,以便存储过程不会在 SIT 中中断?

我所做的解决方法是生成发布脚本(通过 TFS > 发布 > 生成脚本),然后将该脚本复制并粘贴到 SSMS,将对数据库 A 的所有引用替换为数据库 B。然而,这是非常手动的(而且不是万无一失的 - 必须非常小心更换什么),所以我想知道是否有以更有效的方式进行此练习的特性/能力?

提前致谢。

干杯

最佳答案

有一个功能,但它可能需要对您的工作流程进行一些重大更改。

您可以使用SSDT中的SQL Server数据库项目来存储数据库代码。在这种情况下,您可以使用补充数据库名称声明一个项目级变量,然后使用 SQLCMD 语法在您的 SSDT 项目中引用它的对象。

或者更好的是,您可以为两个数据库创建项目并将后者的 DACPAC 文件添加为前者的外部引用。它将自动创建相应的 SQLCMD 变量,并使 Intellisense 可用于链接数据库的对象。

在部署期间,您可以生成包含更改的发布脚本,并仅更新发布脚本开头的此 SQLCMD 变量的值。

当然,这种方式要求数据库的所有变更都先引入到SSDT项目中,再部署到实际实例中。然而,好处远远大于额外的麻烦。

关于sql-server - 多环境场景TFS/SSDT部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39197473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com