Transact-SQL 参考

sp_unbindefault

在当前数据库中为列或者用户定义数据类型解除(删除)默认值绑定。

语法

sp_unbindefault [@objname =] 'object_name'
    [, [@futureonly =] 'futureonly_flag']

参数

[@objname =] 'object_name'

是要解除默认值绑定的表和列或者用户定义数据类型的名称。object_name 的数据类型为 nvarchar(776),无默认值。如果参数不是 table.column 的形式,则假定 object_name 为用户定义数据类型。当为用户定义数据类型解除默认值绑定时,所有属于该数据类型并具有相同默认值的列也同时解除默认值绑定。对属于该数据类型的列,如果其默认值直接绑定到列上,则该列不受影响。

说明  object_name 中可以含有 [ and ] 字符作为分隔标识符。有关更多信息,请参见分隔标识符

[@futureonly =] 'futureonly_flag'

仅用于解除用户定义数据类型默认值的绑定。futureonly_flag 的数据类型为 varchar(15),其默认值为 NULL。当参数 futureonly_flagfutureonly 时,现有的属于该数据类型的列不会失去指定默认值。

返回代码值

0(成功)或 1(失败)

注释

若要显示默认值的文本,请以该默认值的名称为参数执行存储过程 sp_helptext

解除默认值绑定时,如果默认值绑定到列,则绑定信息从表 syscolumns 中删除。如果默认值绑定到用户定义数据类型,则绑定信息从表 systypes 中删除。

权限

只有 sysadmin 固定服务器角色、db_ownerdb_ddladmin 固定数据库角色的成员以及表所有者才能执行 sp_unbindefault

示例
A. 为列解除默认值绑定

下例为表 employeeshiredate 列解除默认值绑定。

EXEC sp_unbindefault 'employees.hiredate'
B. 为用户定义数据类型解除默认值绑定

下例为用户定义数据类型 ssn 解除默认值绑定。这将为该数据类型的现有列和将来的列解除绑定。

EXEC sp_unbindefault 'ssn'
C. 使用 futureonly_flag

下例为用户定义数据类型 ssn 解除默认值绑定,现有的 ssn 列不受影响。

EXEC sp_unbindefault 'ssn', 'futureonly'
D. 使用分隔标识符

此示例显示了在 object_name 中分隔标识符的使用。

CREATE TABLE [t.3] (c1 int) -- Notice the period as part of the table 
-- name.
CREATE DEFAULT default2 AS 0
GO
EXEC sp_bindefault 'default2', '[t.3].c1' 
-- The object contains two periods;
-- the first is part of the table name and the second 
-- distinguishes the table name from the column name.
EXEC sp_unbindefault '[t.3].c1'

请参见

CREATE DEFAULT

DROP DEFAULT

sp_bindefault

sp_helptext

系统存储过程