修改列属性

表中每一列都有一组属性,例如名称、数据类型、为空性和数据长度。列的所有属性构成表中列的定义。

列的数据类型

如果可以将现有列中的现有数据隐式转换为新的数据类型,则可以更改该列的数据类型。有关详细信息,请参阅 ALTER TABLE (Transact-SQL)

列的数据长度

选择数据类型时,将自动定义长度。只能增加或减少具有 binarycharncharvarbinaryvarcharnvarchar 数据类型的列的长度属性。对于其他数据类型的列,其长度由数据类型确定,无法更改。如果新指定的长度小于原列长度,则列中超过新列长度的所有值将被截断,而无任何警告。无法更改用 PRIMARY KEY 或 FOREIGN KEY 约束定义的列的长度。

列的精度

数值列的精度是选定数据类型所使用的最大位数。非数值列的精度指最大长度或定义的列长度。

decimalnumeric 外,所有数据类型的精度都是自动定义的。如果要重新定义那些具有 decimalnumeric 数据类型的列所使用的最大位数,则可以更改这些列的精度。数据库引擎 不允许更改不具有这些指定数据类型之一的列的精度。

列的小数位数

numericdecimal 列的小数位数是指小数点右侧的最大位数。选择数据类型时,列的小数位数默认设置为 0。对于含有近似浮点数的列,因为小数点右侧的位数不固定,所以未定义小数位数。如果要重新定义小数点右侧可显示的位数,则可以更改 numericdecimal 列的小数位数。

列的为空性

可以将列定义为允许或不允许为空值。默认情况下,列允许为空值。仅当现有列中不存在空值且没有为该列创建索引时,才可以将该列更改为不允许为空值。若要使含有空值的现有列不允许为空值,请执行下列步骤:

  1. 添加具有 DEFAULT 定义的新列,插入有效值而不是 NULL。
  2. 将原有列中的数据复制到新列。
  3. 删除原有列。

可以将不允许为空值的现有列更改为允许为空值,除非为该列定义了 PRIMARY KEY 约束。

设置列属性

ALTER TABLE (Transact-SQL)

修改列 (Visual Database Tools)

查看列属性

COLUMNPROPERTY (Transact-SQL)

表列属性 (SQL Server Management Studio)

重命名列

sp_rename (Transact-SQL)

如何重命名列 (Visual Database Tools)

请参阅

其他资源

精度、小数位数和长度 (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助