4

我有 2 个 sql 脚本,一个用于全新安装,另一个用于更新。我希望这个安装程序自动检查数据库是否存在。

伪代码:

IF (database exists)
{
    call 'UpdateDatabase' script
}
ELSE
{
    call 'CreateDatabase' script
}

产品.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>
4

2 回答 2

3

我得到了它。是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>
于 2012-06-28T16:43:28.557 回答
1

目前没有我知道的内置设施。您需要构建一个自定义操作。

如果数据库存在或不存在,您可以在自定义操作中设置属性,并根据其值进行条件检查,相应地调用脚本。

于 2012-06-08T03:32:35.177 回答