Hap*_*own 2 t-sql sql-server sql-server-2012
我想重命名表中的列。我看到两种方法
使用sp_rename()和修改存储过程以引用新名称。
创建新列,将数据从旧列复制到新列,修改存储过程等以引用新列,最终删除旧列。
我们不能使用 #1,因为重命名列可能会使存储过程中断,我们无法承受任何停机时间。
如果我们采用#2,那么在将数据从旧列复制到新列之后但在部署存储过程以使用新列之前,旧列和新列可能会共存一段时间。
有什么方法可以使新列与对旧列所做的任何更新/插入/删除保持同步?
AFTER触发帮助吗?但是触发器通常会增加事务时间,因此可能不是一个有利的解决方案。sp_rename() 是否也干净地更新了对列的所有引用 - 如存储过程、函数、索引等?
首先确认没有像应用程序代码直接查询列而不通过存储过程那样从数据库外部引用该列。
这是我在不导致停机的情况下重命名列的方法 -
现在所有代码都已转换为使用新列,我们需要清理 -