sp_unbindefault (Transact-SQL)

適用於:SQL Server

從數據行或目前資料庫中的別名數據類型解除系結或移除預設值。

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 建議您改用 ALTER TABLE 或 CREATE TABLE 語句中的 DEFAULT 關鍵詞來建立預設定義。

Transact-SQL 語法慣例

語法

sp_unbindefault
    [ @objname = ] N'objname'
    [ , [ @futureonly = ] 'futureonly' ]
[ ; ]

引數

[ @objname = ] N'objname'

數據表和數據行的名稱,或預設值為未系結的別名數據類型。 @objname為 nvarchar(776),沒有預設值。 SQL Server 會先嘗試將兩部分識別符解析為數據行名稱,然後再解析為別名數據類型。

從別名數據類型解除系結預設值時,具有相同預設值的任何數據類型數據行也會取消系結。 系結至預設值的數據類型數據行不會受到影響。

注意

@objname可以包含括號[]做為分隔標識符字元。 如需詳細資訊,請參閱< Database Identifiers>。

[ @futureonly = ] 'futureonly'

只有在將預設值與別名數據類型解除系結時才使用。 @futureonly為 varchar(15),預設值為 NULL。 當 @futureonlyfutureonly,數據類型的現有數據行不會遺失指定的預設值。

傳回碼值

0 (成功) 或 1 (失敗)。

備註

若要顯示預設值的文字,請使用預設值的名稱作為 參數來執行 sp_helptext

權限

若要將預設值從數據表數據行解除系結,則需要數據表的 ALTER 許可權。 若要解除別名數據類型的預設值,需要類型所屬架構的CONTROL許可權或ALTER許可權。

範例

A. 從數據行解除系結預設值

下列範例會解除系結數據表數據 hiredate 行的 employees 預設值。

EXEC sp_unbindefault 'employees.hiredate';

B. 解除系結別名數據類型的預設值

下列範例會將預設值從別名數據類型 ssn解除系結。 它會解除系結該類型的現有和未來數據行。

EXEC sp_unbindefault 'ssn';

C. 使用futureonly_flag

下列範例會解除系結別名數據類型 ssn 的未來使用,而不會影響現有的 ssn 數據行。

EXEC sp_unbindefault 'ssn', 'futureonly';

D. 使用分隔標識碼

下列範例示範在 @objname 參數中使用分隔標識碼。 請注意句點做為數據表名稱的一部分。 在 sp_unbindefault 部分,物件包含兩個句點;第一個句號是數據表名稱的一部分,而第二個會區分數據表名稱與數據行名稱。

-- 
CREATE TABLE [t.3] (c1 INT);

CREATE DEFAULT default2 AS 0;
GO

EXEC sp_bindefault 'default2', '[t.3].c1';

EXEC sp_unbindefault '[t.3].c1';