您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_bindefault

说明

将用户定义的缺省值绑定到列或用户定义的数据类型

语法


sp_bindefault <defname>, <objname> [, futureonly]

参数

<defname>

是用 create default 语句创建的缺省值的名称,要将该缺省值绑定到特定列或用户定义的数据类型。

<objname>

是要向其绑定缺省值的表和列的名称或用户定义的数据类型。如果 <objname> 参数的形式不是“<table>.<column>”,则假定其为用户定义的数据类型。如果对象名包括嵌入的空格或标点符号,或者是保留字,则用引号将它引起来。

除非指定 futureonly,否则用户定义的数据类型的现有列继承缺省值 <defname>

无法将缺省值绑定到计算列。

futureonly

防止用户定义的数据类型的现有列获得新缺省值。当您将缺省值绑定到用户定义的数据类型时,此参数是可选的。它从不用于将缺省值绑定到列。

示例

示例 1

假设已用 create default 在当前数据库中定义了名为 today 的缺省值,此命令将其绑定到 employees 表的 startdate 列:


sp_bindefault today, "employees.startdate"

除非 startdate 列中提供了其它值,否则添加到 employees 表的每个新行在该列中都具有缺省值 today:

示例 2

假设存在名为 def_ssn 的缺省值和名为 ssn 的用户定义的数据类型,此命令会将 def_ssn 绑定到 ssn:


sp_bindefault def_ssn, ssn

创建表时,分配了用户定义数据类型 ssn 的所有列都将继承该缺省值。除非您指定 futureonly(它防止该用户定义的数据类型的现有列继承缺省值),或者除非列的缺省值已被更改(在这种情况下将保持更改的缺省值),否则类型为 ssn 的现有列也继承缺省值 def_ssn。