從當(dāng)前數(shù)據(jù)庫中刪除一個(gè)或多個(gè)用戶定義的規(guī)則。
DROP RULE { rule } [ ,...n ]
rule
是要?jiǎng)h除的規(guī)則。規(guī)則名稱必須符合標(biāo)識(shí)符規(guī)則。有關(guān)標(biāo)識(shí)符規(guī)則的更多信息,請(qǐng)參見使用標(biāo)識(shí)符??梢赃x擇是否指定規(guī)則所有者的名稱。
n
是表示可以指定多個(gè)規(guī)則的占位符。
如果規(guī)則當(dāng)前綁定到列或用戶定義的數(shù)據(jù)類型,若要除去規(guī)則,首先需解除綁定。使用 sp_unbindrule 解除綁定規(guī)則。如果在試圖除去規(guī)則時(shí)規(guī)則是綁定的,將顯示錯(cuò)誤信息并取消 DROP RULE 語句。
除去規(guī)則后,可以在以前受規(guī)則約束的列中輸入新數(shù)據(jù)而不受規(guī)則的約束?,F(xiàn)有數(shù)據(jù)不受任何影響。
DROP RULE 語句不適用于 CHECK 約束。有關(guān)除去 CHECK 約束的更多信息,請(qǐng)參見本卷中的"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)指定所有者除去任何對(duì)象。
下例解除綁定名為 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