在當(dāng)前數(shù)據(jù)庫中為列或用戶定義數(shù)據(jù)類型解除規(guī)則綁定。
sp_unbindrule [@objname =] 'object_name'
[, [@futureonly =] 'futureonly_flag']
[@objname =] 'object_name'
是要解除規(guī)則綁定的表和列或者用戶定義數(shù)據(jù)類型的名稱。object_name 的數(shù)據(jù)類型為 nvarchar(776),無默認(rèn)值。如果參數(shù)不是 table.column 的形式,則假定 object_name 為用戶定義數(shù)據(jù)類型。當(dāng)為用戶定義數(shù)據(jù)類型解除規(guī)則綁定時,所有屬于該數(shù)據(jù)類型并具有相同規(guī)則的列也同時解除規(guī)則綁定。對屬于該數(shù)據(jù)類型的列,如果其規(guī)則直接綁定到列上,則該列不受影響。
說明 object_name 中可以含有 [ and ] 字符作為分隔標(biāo)識符。有關(guān)更多信息,請參見分隔標(biāo)識符。
[@futureonly =] 'futureonly_flag'
僅用于解除用戶定義數(shù)據(jù)類型規(guī)則的綁定。futureonly_flag 的數(shù)據(jù)類型為 varchar(15),其默認(rèn)值為 NULL。當(dāng)參數(shù) futureonly_flag 為 futureonly 時,現(xiàn)有的屬于該數(shù)據(jù)類型的列不會失去指定規(guī)則。
0(成功)或 1(失?。?/P>
若要顯示某條規(guī)則的文本,請以該規(guī)則的名稱作為參數(shù)來執(zhí)行存儲過程 sp_helptext。
解除規(guī)則綁定時,如果規(guī)則綁定到列,則綁定信息從表 syscolumns 中刪除。如果規(guī)則綁定到用戶定義數(shù)據(jù)類型,則綁定信息從表 systypes 中刪除。
當(dāng)從用戶定義數(shù)據(jù)類型解除規(guī)則綁定時,任何具有該用戶定義數(shù)據(jù)類型的列也同時解除該規(guī)則的綁定。對于后來用 ALTER TABLE 語句的 ALTER COLUMN 子句更改了數(shù)據(jù)類型的列,該規(guī)則仍可能綁定在該列上,必須使用存儲過程 sp_unbindrule(并指定列名)明確地從這些列中解除規(guī)則綁定。
只有 sysadmin 固定服務(wù)器角色、db_owner 和 db_ddladmin 固定數(shù)據(jù)庫角色的成員以及表所有者才能執(zhí)行 sp_unbindrule。
下例為表 employees 的 startdate 列解除規(guī)則綁定。
EXEC sp_unbindrule 'employees.startdate'
下例為用戶定義數(shù)據(jù)類型 ssn 解除規(guī)則綁定。這將為該數(shù)據(jù)類型的現(xiàn)有列和將來的列解除規(guī)則綁定。
EXEC sp_unbindrule ssn
下例為用戶定義數(shù)據(jù)類型 ssn 的解除規(guī)則綁定,現(xiàn)有的 ssn 列不受影響。
EXEC sp_unbindrule 'ssn', 'futureonly'
下例顯示了在 object_name 中定界標(biāo)識符的使用。
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'
相關(guān)文章