我正在编写一些同事编写的SQL脚本,将表升级到更新版本。它只是在表格中添加了一个新列。但是,而不是
ALTER TABLE [Table] ADD [Column] [DataType]
语句,他改为使用新列创建表的副本,用现有数据重新填充它,删除旧表,将新表重命名为旧表,然后重新添加所有索引和关系。
我的问题是,这样做有什么好处而不是简单的Alter声明还是有什么不同?
我无法想象除了列的序列位置在所需的位置之外,所有这些工作几乎没有区别。
答案 0 :(得分:2)
使用SSMS GUI时,有时会采用这种方法。这样做的一个可能原因是“插入”列而不是“追加”列。 (如果您希望列显示在某些已存在的列之前。)在这种情况下,添加列将不起作用。
基本上,只要在表格的末尾添加一个新列就不是你想要的了。但我的猜测是他使用GUI添加列并选择“生成SQL脚本”选项。
答案 1 :(得分:1)
关于如何不同的几点差异。希望这有帮助!
向现有表格添加新列:
优点:
无需在现有表格上重新创建索引和约束。
缺点:
重新制作新表:
优点:
缺点: