從當(dāng)前數(shù)據(jù)庫中刪除一個或多個用戶定義的規(guī)則。
DROP RULE { rule } [ ,...n ]
rule
是要刪除的規(guī)則。規(guī)則名稱必須符合標(biāo)識符規(guī)則。有關(guān)標(biāo)識符規(guī)則的更多信息,請參見使用標(biāo)識符??梢赃x擇是否指定規(guī)則所有者的名稱。
n
是表示可以指定多個規(guī)則的占位符。
如果規(guī)則當(dāng)前綁定到列或用戶定義的數(shù)據(jù)類型,若要除去規(guī)則,首先需解除綁定。使用 sp_unbindrule 解除綁定規(guī)則。如果在試圖除去規(guī)則時規(guī)則是綁定的,將顯示錯誤信息并取消 DROP RULE 語句。
除去規(guī)則后,可以在以前受規(guī)則約束的列中輸入新數(shù)據(jù)而不受規(guī)則的約束。現(xiàn)有數(shù)據(jù)不受任何影響。
DROP RULE 語句不適用于 CHECK 約束。有關(guān)除去 CHECK 約束的更多信息,請參見本卷中的"ALTER TABLE"。
默認(rèn)情況下,將 DROP RULE 權(quán)限授予規(guī)則所有者,該權(quán)限不可轉(zhuǎn)讓。然而,db_owner 和 db_ddladmin 固定數(shù)據(jù)庫角色成員和 sysadmin 固定服務(wù)器角色成員可以通過在 DROP RULE 內(nèi)指定所有者除去任何對象。
下例解除綁定名為 pub_id_rule 的規(guī)則并將其除去。
USE pubs相關(guān)文章
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'pub_id_rule'
AND type = 'R')
BEGIN
EXEC sp_unbindrule 'publishers.pub_id'
DROP RULE pub_id_rule
END
GO