如何通过安装程序部署复杂的SQL解决方案?

时间:2008-09-29 14:08:07

标签: sql database installer

我正在处理的产品的部分安装例程安装了数据库更新实用程序。该实用程序检查用户数据库的当前版本,并(如有必要)执行一系列将数据库升级到当前版本的SQL语句。

此例程的两个主要特征:

  • 启动后,无需用户互动即可运行
  • SQL操作保留用户数据的完整性

目标是使最终用户尽可能简化设置/数据库例程(目标受众是非技术性的)。但是,我发现在某些情况下,这两个特征是不一致的。例如,我想为我的一个表添加一个唯一索引 - 但现有数据可能已经破坏了这个规则。我可以:

  • 默默地为用户选择“正确”的内容并丢弃(或归档)数据;或
  • 要求用户了解唯一索引是什么,并让他们选择哪些数据

这两个选项听起来都不吸引我。我可以妥协,而不是创建一个独特的索引,但那会很糟糕。我想知道其他人在这种情况下做了什么?

2 个答案:

答案 0 :(得分:1)

从Red-Gate查看SQL Packager。我没有亲自使用它,但是这些人总体上做了很好的工具,这似乎可以做你想要的。它让你修改脚本来自定义安装: http://www.red-gate.com/products/SQL_Packager/index.htm

答案 1 :(得分:0)

您永远不会丢弃用户数据。一种可能的选择是尝试创建唯一索引。如果索引创建失败,让他们知道它失败了,告诉他们需要研究什么,并为他们提供一个他们可以运行的脚本,如果他们发现他们有一个他们选择修复的数据错误。