我们有一些客户拥有大型数据集,在我们的升级过程中,我们需要修改各种表的架构(添加一些列,重命名其他列,偶尔更改数据类型,但这种情况很少见)。
以前我们一直在使用新模式的临时表,然后删除原始表并重命名临时表,但我希望通过使用ALTER table ...
来显着加快速度。
我的问题是我需要考虑哪些数据完整性和错误处理问题?我应该在事务中包含对表的所有更改(如果是,如何?)还是 DBMS 会保证 ALTER 操作的原子性和完整性?
我们已经强烈建议客户在开始升级之前备份他们的数据,因此这应该始终是一个后备选项。
我们需要以 SQLServer 2005 和 Oracle 为目标,但显然如果它们需要不同的方法,我可以添加条件代码。