什么是默认值
默认值是指在创建表时,为表的列指定的初始默认值。当向该表插入数据时,如果没有明确地指定该列的值,则会将该列的值设置为该默认值。默认值可以是常量、函数或表达式。
默认值可用于确保数据的一致性,或者为使用该表的应用程序提供方便。默认值可以在创建表时指定,也可以在之后使用ALTER TABLE语句更改。
修改默认值
查看默认值
在SQL Server中,可以使用系统视图sys.default_constraints查看表的默认值。
SELECT name, definition
FROM sys.default_constraints
WHERE OBJECT_NAME(parent_object_id) = '表名'
AND type_desc = 'DEFAULT_CONSTRAINT'
其中,name为默认值的名称,definition为默认值的值。
使用ALTER TABLE语句修改默认值
使用ALTER TABLE语句修改默认值时,需指定需要修改的列名和新的默认值。
ALTER TABLE 表名
ALTER COLUMN 列名 数据类型 DEFAULT 默认值
例如,修改表person的列age的默认值为20:
ALTER TABLE person
ALTER COLUMN age INT DEFAULT 20
注意:
修改默认值时,只能修改列的默认值,不能修改数据类型。
如果列已经有值,则不会自动将该列的值设置为新的默认值。
使用DROP CONSTRAINT语句删除默认值
使用DROP CONSTRAINT语句删除默认值时,需指定需要删除默认值的约束名称。
ALTER TABLE 表名
DROP CONSTRAINT 约束名称
例如,删除表person的列age的默认值:
ALTER TABLE person
DROP CONSTRAINT DF_person_age
其中,DF_person_age为列age的默认值的约束名称。
注意:
删除默认值时,只能删除列的默认值,不能删除数据类型。
删除默认值后,数据库将不会自动设置该列的默认值。
总结
默认值是指在创建表时,为表的列指定的初始默认值。在SQL Server中,可以使用系统视图sys.default_constraints查看表的默认值,使用ALTER TABLE语句修改默认值,使用DROP CONSTRAINT语句删除默认值。