您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_unbindrule

语法


sp_unbindrule <objname>[, futureonly[, "accessrule" | "all"]]

参数

<objname>

是要解除规则绑定的表和列或用户定义数据类型的名称。如果参数的形式不是“<table>.<column>”,则 <objname> 将被认为是用户定义的数据类型。解除规则与用户定义数据类型的绑定时,将同时解除它与属于该类型的列的绑定。已经绑定到其它规则的列不受影响。

futureonly

防止属于指定用户定义数据类型的列丢失其规则。解除规则与列的绑定时,将忽略此选项。

accessrule

表示要解除绑定到 <objname> 的访问规则的绑定。

all

指定要解除所有绑定到 <objname> 的规则的绑定。

示例

示例 1

解除规则与 employees 表的 startdate 列的绑定:


sp_unbindrule "employees.startdate"

示例 2

解除规则与名为 def_ssn 的用户定义数据类型和所有属于该类型的列的绑定:


sp_unbindrule def_ssn

示例 3

用户定义数据类型 ssn 将不再具有规则,但现有 ssn 列不受影响:


sp_unbindrule ssn, futureonly

示例 4

使用 all 参数可以同时解除访问规则绑定和域规则的绑定。例如,若要解除 publishers 表上的所有访问规则和域规则的绑定,请执行以下命令:


sp_unbindrule publishers, null, "all"

若要解除访问规则与某个用户定义数据类型的绑定,并且希望更改只影响以后对该数据类型的使用,请发出以下命令:


sp_unbindrule def_ssn, futureonly, "accessrule"

若要同时解除访问规则和域规则与该数据类型的绑定,并且希望更改只影响以后对该数据类型的使用,请发出以下命令:


sp_unbindrule def_ssn, futureonly, "all"

示例 5

下面的访问规则绑定到 publishers 表:


sp_bindrule empl_access, "publishers.pub_id"

若要解除该规则的绑定,请发出以下命令:


sp_unbindrule "empl_access", NULL, "accessrule"

用法

使用 sp_unbindrule 时,还存在一些其它注意事项:

  • 执行 sp_unbindrule 将解除用于当前数据库中的列或用户定义数据类型的规则。如果不希望解除规则与现有 objname 列的绑定,请使用 futureonly

  • 不能使用 sp_unbindrule 解除检查约束的绑定。用作第二个参数 alter table 以删除约束。

  • 若要解除规则与表中某一列的绑定,请以“<table>.<column>”格式指定 <objname> 作为参数。

  • 将解除规则与属于该用户定义数据类型的所有现有列的绑定,除非已经更改了规则或可选的第二个参数的值为 futureonly。

  • 若要显示规则的文本,请使用规则名称作为参数执行 sp_helptext。