修改列属性
表中每一列都有一组属性,例如名称、数据类型、为空性和数据长度。列的所有属性构成表中列的定义。
列的数据类型
如果可以将现有列中的现有数据隐式转换为新的数据类型,则可以更改该列的数据类型。有关详细信息,请参阅 ALTER TABLE (Transact-SQL)。
列的数据长度
选择数据类型时,将自动定义长度。只能增加或减少具有 binary、char、nchar、varbinary、varchar 或 nvarchar 数据类型的列的长度属性。对于其他数据类型的列,其长度由数据类型确定,无法更改。如果新指定的长度小于原列长度,则列中超过新列长度的所有值将被截断,而无任何警告。无法更改用 PRIMARY KEY 或 FOREIGN KEY 约束定义的列的长度。
列的精度
数值列的精度是选定数据类型所使用的最大位数。非数值列的精度指最大长度或定义的列长度。
除 decimal 和 numeric 外,所有数据类型的精度都是自动定义的。如果要重新定义那些具有 decimal 和 numeric 数据类型的列所使用的最大位数,则可以更改这些列的精度。数据库引擎 不允许更改不具有这些指定数据类型之一的列的精度。
列的小数位数
numeric 或 decimal 列的小数位数是指小数点右侧的最大位数。选择数据类型时,列的小数位数默认设置为 0。对于含有近似浮点数的列,因为小数点右侧的位数不固定,所以未定义小数位数。如果要重新定义小数点右侧可显示的位数,则可以更改 numeric 或 decimal 列的小数位数。
列的为空性
可以将列定义为允许或不允许为空值。默认情况下,列允许为空值。仅当现有列中不存在空值且没有为该列创建索引时,才可以将该列更改为不允许为空值。若要使含有空值的现有列不允许为空值,请执行下列步骤:
- 添加具有 DEFAULT 定义的新列,插入有效值而不是 NULL。
- 将原有列中的数据复制到新列。
- 删除原有列。
可以将不允许为空值的现有列更改为允许为空值,除非为该列定义了 PRIMARY KEY 约束。
设置列属性
查看列属性
表列属性 (SQL Server Management Studio)
重命名列
如何重命名列 (Visual Database Tools)