我正处于从专有数据库读取的情况,我无法改变我的需求。精彩的架构师有一个可怕的规范化数据库,当他们在Dev中设置服务器时,他们并不认为匹配Dev和Prod之间的主键(整数身份值)。
在这种情况下,我们必须编写我们使用硬编码值的查询 - 例如where productid = 12345
。 12345
并非始终与开发中的产品相同。这意味着维护2组sql代码。它们是潜在错误的高风险(不会部署正确的脚本)。我更喜欢Dev中的测试标准,并将完全相同的代码部署到Production。这可以最大限度地降低风险。
注意:我为了这个例子的目的简化了这个,但它的架构方式和我们需要进行查询的方式需要硬编码。 (对不起我的抨击)。
有人说你可以用SQL Server令牌替换来做到这一点,但我似乎无法在网上找到太多。显然,您可以在sql文件中设置所需的值(productid' s),然后将其部署到服务器,用正确的硬编码值替换tokens
。
我正在寻找一些入门指导。
答案 0 :(得分:1)
您可以使用参数表来解决这个问题:
Parameter Value
ProductId 12345
获取参数的函数:
WHERE productid = (SELECT Parameter('ProductId'))