在Prod和Dev之间同步硬编码值

时间:2016-09-27 19:33:01

标签: sql sql-server deployment token

我正处于从专有数据库读取的情况,我无法改变我的需求。精彩的架构师有一个可怕的规范化数据库,当他们在Dev中设置服务器时,他们并不认为匹配Dev和Prod之间的主键(整数身份值)。

在这种情况下,我们必须编写我们使用硬编码值的查询 - 例如where productid = 1234512345并非始终与开发中的产品相同。这意味着维护2组sql代码。它们是潜在错误的高风险(不会部署正确的脚本)。我更喜欢Dev中的测试标准,并将完全相同的代码部署到Production。这可以最大限度地降低风险。

注意:我为了这个例子的目的简化了这个,但它的架构方式和我们需要进行查询的方式需要硬编码。 (对不起我的抨击)。

有人说你可以用SQL Server令牌替换来做到这一点,但我似乎无法在网上找到太多。显然,您可以在sql文件中设置所需的值(productid' s),然后将其部署到服务器,用正确的硬编码值替换tokens

我正在寻找一些入门指导。

1 个答案:

答案 0 :(得分:1)

您可以使用参数表来解决这个问题:

Parameter   Value
ProductId   12345

获取参数的函数:

WHERE productid = (SELECT Parameter('ProductId'))