create table stuinfor
( name varchar(20),
gender char(2)
)
--gender字段添加默认值为’男‘
--比如'gender'默认值为'男'
alter table stuinfor
add constraint df_gender
default '男' for gender
--又比如name列默认名’张三‘
--我也可以以这种方式加
create default gender as '张三' --创建默认
sp_bindefault 'gender','stuinfor.name' --绑定默认到指定列
sp_helpconstraint 'stuinfor' --查看指定表的约束
问题:
两者都为默认值,但前者为约束类型,后者归为默认值,作用相同,为什么sqlserver要这么设计呢?
默认值的用处何为啊?是不是意思为当某字段为空时,在调用该字段时,取用该字段默认值?小弟不解,请大神们开解,记得以前在论坛里有人问过,印象不深。
------解决方案--------------------
默认值约束是在一个表内针对某一个字段定义的, 仅对该字段有效。
默认值是一种数据库对象,在数据库中定义一次后,可以被多次应用于表中的一列或多列,还可用于用户自定义的数据类型