sp_unbindefault (Transact-SQL)
適用於:SQL Server
從數據行或目前資料庫中的別名數據類型解除系結或移除預設值。
重要
SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 建議您改用 ALTER TABLE 或 CREATE TABLE 語句中的 DEFAULT 關鍵詞來建立預設定義。
語法
sp_unbindefault
[ @objname = ] N'objname'
[ , [ @futureonly = ] 'futureonly' ]
[ ; ]
引數
[ @objname = ] N'objname'
數據表和數據行的名稱,或預設值為未系結的別名數據類型。 @objname為 nvarchar(776),沒有預設值。 SQL Server 會先嘗試將兩部分識別符解析為數據行名稱,然後再解析為別名數據類型。
從別名數據類型解除系結預設值時,具有相同預設值的任何數據類型數據行也會取消系結。 系結至預設值的數據類型數據行不會受到影響。
注意
@objname可以包含括號[]
做為分隔標識符字元。 如需詳細資訊,請參閱 資料庫標識符。
[ @futureonly = ] 'futureonly'
只有在將預設值與別名數據類型解除系結時才使用。 @futureonly為 varchar(15),預設值為 NULL
。 當 @futureonly 為futureonly
時,數據類型的現有數據行不會遺失指定的預設值。
傳回碼值
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';