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