sp_unbindefault (Transact-SQL)
在当前数据库中为列或者别名数据类型解除(删除)默认值绑定。
重要提示 |
---|
下一版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。建议您改为在 ALTER TABLE 或 CREATE TABLE 语句中使用 DEFAULT 关键字来创建默认定义。 |
语法
sp_unbindefault [ @objname = ] 'object_name'
[ , [ @futureonly = ] 'futureonly_flag' ]
参数
[ @objname= ] 'object_name'
要解除其默认值绑定的表和列或别名数据类型的名称。 object_name 的数据类型为 nvarchar(776),无默认值。 SQL Server 尝试先将两部分标识符解析为列名,再解析为别名数据类型。解除别名数据类型的默认值绑定时,也同时解除数据类型相同且具有相同默认值的任何列的默认值绑定。 属于该数据类型并且直接绑定默认值的类将不受影响。
注意 object_name 可以包含方括号 [ ] 作为分隔标识符。 有关详细信息,请参阅数据库标识符。
[ @futureonly= ] 'futureonly_flag'
仅在解除别名数据类型的默认值绑定时使用。 futureonly_flag 的数据类型为 varchar(15),默认值为 NULL。 当 futureonly_flag 的数据类型为 futureonly 时,该数据类型的现有列不会失去指定默认值。
返回代码值
0(成功)或 1(失败)
注释
若要显示默认值的文本,请以该默认值的名称为参数执行存储过程 sp_helptext。
权限
若要解除表列的默认值绑定,需要对表具有 ALTER 权限。 若要解除别名数据类型的默认值绑定,需要对该类型具有 CONTROL 权限或对该类型所属架构具有 ALTER 权限。
示例
A.解除列的默认值绑定
以下示例解除 employees 表的 hiredate 列的默认值绑定。
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'