我有2个sql脚本,一个用于全新安装,另一个用于更新。我希望此安装程序自动检查数据库是否存在。
伪代码:
IF (database exists)
{
call 'UpdateDatabase' script
}
ELSE
{
call 'CreateDatabase' script
}
Product.wxs
<sql:SqlDatabase Id='SqlDatabase' Database='master' Server='.'
CreateOnInstall='yes' DropOnUninstall='no' ContinueOnError='yes'>
<sql:SqlScript Id='CreateDatabase' BinaryKey='CreateDatabase' ExecuteOnInstall='yes' />
<sql:SqlScript Id='UpdateDatabase' BinaryKey='UpdateDatabase' ExecuteOnInstall='yes' />
</sql:SqlDatabase>
答案 0 :(得分:2)
我明白了。它是ExecuteOnReinstall
。按预期工作。
<sql:SqlDatabase Id='SqlDatabase' Database='master' Server='.'
CreateOnInstall='yes' DropOnUninstall='no' ContinueOnError='yes'>
<sql:SqlScript Id='CreateDatabase' BinaryKey='CreateDatabase' ExecuteOnInstall='yes' />
<sql:SqlScript Id='UpdateDatabase' BinaryKey='UpdateDatabase' ExecuteOnReinstall='yes' />
</sql:SqlDatabase>
答案 1 :(得分:1)
目前还没有我知道的内置设施。您需要构建自定义操作。
如果数据库存在与否,您可以在自定义操作中设置属性 根据其值,执行条件检查相应地调用脚本。