这是独家新闻。我正在使用Octopus Deploy设置数据库部署,这一切都很好,很花哨。我唯一想弄清楚的是,是否有一种方法可以根据正在运行的部署(即Dev,Test,Production)来定位特定的数据库实例和服务器。由于我的数据在3之间略有不同,我需要为每个环境运行略有不同的脚本。没有架构更改,只有数据差异。我可以将一个部署后脚本添加到我的VS项目中以进行数据库的OD部署,但我需要知道如何定位不同的实例和服务器。我尝试了整个select @@ servername,但这只是给我一个语法错误。有人能够向我解释如何根据部署的环境运行某些SQL吗?
答案 0 :(得分:0)
首先要做的事情。无论是Octupus Deploy,白雪公主还是外面的阳光;您连接的SQL Server在连接字符串之前中定义。它不能在SQL语句中更改。您需要关闭连接,然后建立与其他服务器的新连接。
换句话说:不,你不能。在PROD中部署一次,然后在TEST中再次部署。
关于选择服务器名称;你做错了。该陈述是字面上的,不应修改...... SELECT @@SERVERNAME
。它是一个只读全局变量,它返回您所连接的当前服务器的名称。
您可以创建一个链接服务器并在单个连接中运行脚本...在您的情况下会造成很大的混乱,我当然不建议部署。
这样想。当你在加利福尼亚打电话给你兄弟的号码时,你不能和你在迈阿密的妹妹交谈。先挂机,然后再打电话,这次使用你姐姐的号码。