添加列VS重新创建表

时间:2015-05-07 18:33:44

标签: sql-server

我正在编写一些同事编写的SQL脚本,将表升级到更新版本。它只是在表格中添加了一个新列。但是,而不是

ALTER TABLE [Table] ADD [Column] [DataType]

语句,他改为使用新列创建表的副本,用现有数据重新填充它,删除旧表,将新表重命名为旧表,然后重新添加所有索引和关系。

我的问题是,这样做有什么好处而不是简单的Alter声明还是有什么不同?

我无法想象除了列的序列位置在所需的位置之外,所有这些工作几乎没有区别。

2 个答案:

答案 0 :(得分:2)

使用SSMS GUI时,有时会采用这种方法。这样做的一个可能原因是“插入”列而不是“追加”列。 (如果您希望列显示在某些已存在的列之前。)在这种情况下,添加列将不起作用。

基本上,只要在表格的末尾添加一个新列就不是你想要的了。但我的猜测是他使用GUI添加列并选择“生成SQL脚本”选项。

答案 1 :(得分:1)

关于如何不同的几点差异。希望这有帮助!

向现有表格添加新列:

优点:

  • 无需在现有表格上重新创建索引和约束。

    1. 现有列的数据保持不变。

缺点:

  • 需要更新包含数百万条记录的庞大表格 新栏目。

重新制作新表:

优点:

  • 无需担心任何类型的限制(列数,总数 RDBMS中的表格大小

缺点:

  • 重新创建索引和约束
  • 重新加载所有列的数据