【发布时间】:2015-01-31 21:45:17
【问题描述】:
我想知道我是否使用以下方法向表中添加一列:
alter table Jobs
add Complete boolean
这会清除当前表中的所有数据吗?我正在使用 SQL Server Management Studio 2012
【问题讨论】:
标签: sql sql-server alter-table
我想知道我是否使用以下方法向表中添加一列:
alter table Jobs
add Complete boolean
这会清除当前表中的所有数据吗?我正在使用 SQL Server Management Studio 2012
【问题讨论】:
标签: sql sql-server alter-table
一点也不。这会添加一个值为NULL 的列,但它对表中已有的数据没有直接影响。
注意:boolean 不是 SQL Server 中的数据类型,因此特定语句将不起作用。您可以改用bit、tinyint、smallint 或int。或 char(1) 来存储“T”和“F”。
第二个注意事项:如果您的表非常大,那么添加一列可能需要一段时间,因为可能需要重写所有数据。尽管值为NULL,但SQL Server 中的每一页都包含一个位,用于所有列中的NULL 值。如果这超出了字节边界,则需要在页面上重新排列数据 - 并且可能需要为数据分配新页面。在任何情况下,都需要修改每个页面以包含 NULL 值。因此,如果可能,建议在空表中添加列。
【讨论】:
不,它不会删除您的数据。它将添加一列,所有现有数据将在该列中分配空值。
【讨论】: