共用方式為


sp_unbindrule (Transact-SQL)

將規則和目前資料庫中的資料行或別名資料類型解除繫結。

重要事項重要事項

下一版的 Microsoft SQL Server 將不再提供此功能。請勿在新的開發工作中使用此功能,並且儘速修改使用此功能的應用程式。 我們建議您改用 ALTER TABLECREATE TABLE 陳述式的 DEFAULT 關鍵字來建立預設定義。如需詳細資訊,請參閱<建立和修改 DEFAULT 定義>。

主題連結圖示Transact-SQL 語法慣例

語法

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'