sql - WiX:你如何更新数据库?

标签 sql wix sql-update

在我的 WiX 项目中,我有一个文件数据和一个 SQL 脚本,它们创建数据库、创建/更改表、插入/更新行等。所有脚本都分为三个部分,并通过 SqlScript 元素执行。我用 ContinueOnError="no"但如果前一个脚本成功执行,则不会回滚。我可以将所有脚本包装在事务中并使用 try/catch 块吗?是否有机会处理来自 WiZ 的 catch 事件?你有什么建议来制作这种安装程序?

最佳答案

我们不使用 Wix SQL 扩展,我们运行自定义操作来完成我们需要的工作。

在安装时,我们使用自定义操作首先备份数据库,然后运行正确的升级脚本(基于当前数据库的版本),如果需要,将数据库恢复到备份作为升级的回滚操作。

卸载时,我们备份数据库,将其删除(根据用户输入有条件地进行),并在卸载过程中出现任何问题时进行恢复。

关于sql - WiX:你如何更新数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5118581/

相关文章:

wix - 使用 Wix 卸载 MSI 之前的自定义操作

iis - WiX 在创建新网站之前删除默认 IIS 网站

c# - 蜡 & T4 : no "Custom Tool" option

sql - 从多个表更新?

mysql - 如何使用查询更新数据库中的数据而不改变原始值?

sql - 返回 1 或 0 作为带有 EXISTS 的子查询字段?

mysql - 从不存在查询中选择

php - 使用 php 和 mysqli 将行中的整数字段更新为 1

java - 像 %?% 不能作为 StringBuilder SQL 查询的一部分

sql - Redshift 无法识别引用字段?