我想知道我是否使用以下方法向表中添加了一列:
alter table Jobs
add Complete boolean
这会擦除我表格中当前的所有数据吗?我正在使用SQL Server Management Studio 2012
答案 0 :(得分:4)
完全没有。这会添加一个值为NULL
的列,但它对表中已有的数据没有直接影响。
注意:boolean
不是SQL Server中的数据类型,因此特定语句不起作用。您可以改用bit
,tinyint
,smallint
或int
。或char(1)
存储'T'和'F'。
第二个注意事项:如果您的表非常大,那么添加一列可能需要一段时间,因为可能需要重写所有数据。虽然值为NULL
,但SQL Server中的每个页面都包含所有列中NULL
值的位。如果这跨越字节边界,则需要在页面上重新排列数据 - 也许是为数据分配的新页面。在任何情况下,都需要修改每个页面以包含NULL
值。因此,如果可能,建议将列添加到空表中。
答案 1 :(得分:1)
不,它不会删除您的数据。它将添加一列,并在此列中为所有现有数据分配空值。