为了澄清我的问题的含义并提供一些背景信息,我和我的同事正在开发一个msi软件包(使用WiX 3.5开发),可以使用我们的软件自动安装和配置终端。但是我们的技术说明中的一点表明需要根据用户需求打开和更改sql文件,因此我们无法对其进行硬编码。
获取我们需要的变量没有问题,安装程序可以导出settings.ini文件或任何可以保存我们需要的值的文件,问题是将这些值直接移动到sql文件中,尽可能少的用户交互。我们客户公司的员工不是软件人员,所以我们需要找到一种方法。
“SET”部分是需要在安装时更新的字段:
DECLARE @Galaxy varchar(32)
SET @Galaxy = 'foo'
DECLARE @IPAddress varchar(15)
SET @IPAddress = 'foo'
DECLARE @Project varchar(32)
SET @Project = 'foo'
任何见解都会非常有用,SQL不是我通常的工作领域。
答案 0 :(得分:1)
根据您的要求,我得出结论,需要在每个终端上安装SQL Server客户端。因此sqlcmd可用,您可以使用:setvar
机制在执行脚本之前设置值。
请参阅this example其中:setvar直接在.sql脚本中使用。使用$(variablename)
评估变量。这些变量也可以在命令行(section Variable Precedence)上设置,因此不需要修改.sql文件。