sp_unbindrule (Transact-SQL)
將規則和目前資料庫中的資料行或別名資料類型解除繫結。
重要事項 |
---|
下一版的 Microsoft SQL Server 將不再提供此功能。請勿在新的開發工作中使用此功能,並且儘速修改使用此功能的應用程式。 我們建議您改用 ALTER TABLE 或 CREATE TABLE 陳述式的 DEFAULT 關鍵字來建立預設定義。如需詳細資訊,請參閱<建立和修改 DEFAULT 定義>。 |
語法
sp_unbindrule [ @objname = ] 'object_name'
[ , [ @futureonly = ] 'futureonly_flag' ]
引數
[@objname= ] 'object_name'
這是規則將解除繫結的資料表和資料行或別名資料類型的名稱。object_name 是 nvarchar(776),沒有預設值。SQL Server 會試圖先將兩部份識別碼解析成資料行名稱,再解析成別名資料類型。當您將規則和別名資料類型解除繫結時,也會解除繫結這個資料類型有相同規則的任何資料行。直接繫結規則之資料類型的資料行不受影響。[!附註]
object_name 可以包含方括號 [] 來作為分隔識別碼字元。如需詳細資訊,請參閱<分隔識別碼 (Database Engine)>。
[@futureonly= ] 'futureonly_flag'
只有解除繫結別名資料類型的規則時,才使用這個項目。futureonly_flag 是 varchar(15),預設值是 NULL。當 futureonly_flag 是 futureonly 時,這個資料類型現有的資料行不會失去指定的規則。
傳回碼值
0 (成功) 或 1 (失敗)
備註
若要顯示規則的文字,請將規則名稱設為參數來執行 sp_helptext。
當規則解除繫結時,如果規則是繫結到資料行,便會從 sys.columns 資料表中移除繫結,如果規則是繫結到別名資料類型,便會從 sys.types 資料表中移除繫結。
當您將規則和別名資料類型解除繫結時,也會解除繫結含這個別名資料類型的任何資料行。規則有可能仍繫結到後來利用 ALTER TABLE 陳述式的 ALTER COLUMN 子句來變更資料類型的資料行,您必須利用 sp_unbindrule 並指定資料行名稱,將規則和這些資料行明確解除繫結。
權限
將規則和資料表資料行解除繫結,需要資料表的 ALTER 權限。將規則和別名資料類型解除繫結,需要類型的 CONTROL 權限,或類型所屬之結構描述的 ALTER 權限。
範例
A. 將規則和資料行解除繫結
下列範例會將規則和 employees 資料表的 startdate 資料行解除繫結。
EXEC sp_unbindrule 'employees.startdate'
B. 將規則和別名資料類型解除繫結
下列範例會將規則和別名資料類型 ssn 解除繫結。它會將規則和這個類型的現有資料行及未來資料行解除繫結。
EXEC sp_unbindrule ssn
C. 使用 futureonly_flag
下列範例會將規則和別名資料類型 ssn 解除繫結,且不會影響現有的 ssn 資料行。
EXEC sp_unbindrule 'ssn', 'futureonly'
D. 使用分隔識別碼
下列範例會顯示如何在 object_name 參數中使用分隔識別碼。
CREATE TABLE [t.4] (c1 int) -- Notice the period as part of the table
-- name.
GO
CREATE RULE rule2 AS @value > 100
GO
EXEC sp_bindrule rule2, '[t.4].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.
GO
EXEC sp_unbindrule '[t.4].c1'