是否添加列删除数据

时间:2015-01-31 21:45:18

标签: sql sql-server alter-table

我想知道我是否使用以下方法向表中添加了一列:

alter table Jobs
add Complete boolean

这会擦除我表格中当前的所有数据吗?我正在使用SQL Server Management Studio 2012

2 个答案:

答案 0 :(得分:4)

完全没有。这会添加一个值为NULL的列,但它对表中已有的数据没有直接影响。

注意:boolean不是SQL Server中的数据类型,因此特定语句不起作用。您可以改用bittinyintsmallintint。或char(1)存储'T'和'F'。

第二个注意事项:如果您的表非常大,那么添加一列可能需要一段时间,因为可能需要重写所有数据。虽然值为NULL,但SQL Server中的每个页面都包含所有列中NULL值的位。如果这跨越字节边界,则需要在页面上重新排列数据 - 也许是为数据分配的新页面。在任何情况下,都需要修改每个页面以包含NULL值。因此,如果可能,建议将列添加到空表中。

答案 1 :(得分:1)

不,它不会删除您的数据。它将添加一列,并在此列中为所有现有数据分配空值。