从当前数据库中删除一个或多个用户定义的规则。
DROP RULE { rule } [ ,...n ]
rule
是要删除的规则。规则名称必须符合标识符规则。有关标识符规则的更多信息,请参见使用标识符。可以选择是否指定规则所有者的名称。
n
是表示可以指定多个规则的占位符。
如果规则当前绑定到列或用户定义的数据类型,若要除去规则,首先需解除绑定。使用 sp_unbindrule 解除绑定规则。如果在试图除去规则时规则是绑定的,将显示错误信息并取消 DROP RULE 语句。
除去规则后,可以在以前受规则约束的列中输入新数据而不受规则的约束。现有数据不受任何影响。
DROP RULE 语句不适用于 CHECK 约束。有关除去 CHECK 约束的更多信息,请参见本卷中的"ALTER TABLE"。
默认情况下,将 DROP RULE 权限授予规则所有者,该权限不可转让。然而,db_owner 和 db_ddladmin 固定数据库角色成员和 sysadmin 固定服务器角色成员可以通过在 DROP RULE 内指定所有者除去任何对象。
下例解除绑定名为 pub_id_rule 的规则并将其除去。
USE pubs相关文章
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