将用户定义的缺省值绑定到列或用户定义的数据类型
sp_bindefault <defname>, <objname> [, futureonly]
<defname>
是用 create default 语句创建的缺省值的名称,要将该缺省值绑定到特定列或用户定义的数据类型。
<objname>
是要向其绑定缺省值的表和列的名称或用户定义的数据类型。如果 <objname> 参数的形式不是“<table>.<column>”,则假定其为用户定义的数据类型。如果对象名包括嵌入的空格或标点符号,或者是保留字,则用引号将它引起来。
除非指定 futureonly,否则用户定义的数据类型的现有列继承缺省值 <defname>。
无法将缺省值绑定到计算列。
futureonly
防止用户定义的数据类型的现有列获得新缺省值。当您将缺省值绑定到用户定义的数据类型时,此参数是可选的。它从不用于将缺省值绑定到列。
假设已用 create default 在当前数据库中定义了名为 today 的缺省值,此命令将其绑定到 employees 表的 startdate 列:
sp_bindefault today, "employees.startdate"
除非 startdate 列中提供了其它值,否则添加到 employees 表的每个新行在该列中都具有缺省值 today:
假设存在名为 def_ssn 的缺省值和名为 ssn 的用户定义的数据类型,此命令会将 def_ssn 绑定到 ssn:
sp_bindefault def_ssn, ssn
创建表时,分配了用户定义数据类型 ssn 的所有列都将继承该缺省值。除非您指定 futureonly(它防止该用户定义的数据类型的现有列继承缺省值),或者除非列的缺省值已被更改(在这种情况下将保持更改的缺省值),否则类型为 ssn 的现有列也继承缺省值 def_ssn。