SQLServer数据库实用技术(56)
(1) 用存储过程Sp_bindrule 绑定规则
存储过程Sp_bindrule 可以绑定一个规则到表的一个列或一个用户自定义数据类型上。其语法如下:
sp_bindrule [@rulename =] 'rule',
[@objname =] 'object_name'
[, 'futureonly']
各参数说明如下:
[@rulename =] 'rule'
指定规则名称。
[@objname =] 'object_name'
指定规则绑定的对象。
'futureonly'
此选项仅在绑定规则到用户自定义数据类型上时才可以使用。当指定此选项时,仅以后使用此用户自定义数据类型的列会应用新规则,而当前已经使用此数据类型的列则不受影响。 本文来自织梦
例9-6: 绑定规则hire_date_rule 到用户自定义数据类型hire_date 上。
exec sp_bindrule hire_date_rule, hire_date
运行结果如下:
Rule bound to data type.
The new rule has been bound to column(s) of the specified user data type.
例9-7: 绑定规则hire_date_rule 到用户自定义数据类型hire_date 上,带'futureonly'选项。
exec sp_bindrule hire_date_rule, hire_date, 'futureonly'
运行结果如下:
Rule bound to data type.
例9-8: 绑定规则my_rule 到orders 表的字段order_id。
exec sp_bindrule id_rule, 'orders.[order_id]'
运行结果如下:
Rule bound to table column.
注重:规则对已经输入表中的数据不起作用。
规则所指定的数据类型必须与所绑定的对象的数据类型一致,且规则不能绑定一个数据类型为TEXT、MAGE或TIMESTAMP的列。
与表的列绑定的规则优先于与用户自定义数据类型绑定的列,因此,假如表的列的数据类型与规则A绑定,同时列又与规则B绑定,则以规则B为列的规则。
你可以直接用一个新的规则来绑定列或用户自定义数据类型,而不需要先将其原来绑定的规则解除,系统会将早班规则覆盖。
(2)用存储过程Sp_unbindrule 解除规则的绑定
存储过程Sp_unbindrule 可解除规则与列或用户自定义数据类型的绑定,其语法如下:
sp_unbindrule [@objname =] 'object_name'
[,'futureonly']
其中'futureonly'选项同绑定时一样,仅用于用户自定义数据类型,它指定现有的用此用户自定义数据类型定义的列仍然保持与此规则的绑定。假如不指定此项,所有由此用户自定义数据类型定义的列也将随之解除与此规则的绑定。
例9-9: 解除规则hire_date_rule 与用户自定义数据类型birthday 的绑定,带'futureonly'
选项。
exec sp_unbindrule birthday, 'futureonly'
运行结果如下:
(1 row(s) affected)
Rule unbound from data type.
(3) 用Enterprise Manager 治理规则的绑定
在Enterprise Manager 中,选择要进行绑定设置的规则,单击右键,从快捷菜单中选择“Properties” 选项,即会出现如图9-3 所示的规则属性对话框。图中的“Bind UDTs…”按钮用于绑定用户自定义数据类型,“Bind Columns…” 按钮用于绑定表的列。
在图9-3 中单击“Bind UDTs…” 按钮,则出现如图9-4 所示的绑定规则到用户自定义数据类型的对话框;单击“Bind Columns…” 按钮,则出现如图9-5 所示的绑定规则到表的列的对话框。
织梦好,好织梦
9.2.4 删除规则
可以在Enterprise Manager 中选择规则,单击右键,从快捷菜单中选择“Delete” 选项删除规则,也可使用DROP RULE 命令删除当前数据库中的一个或多个规则。其语法如下:
DROP RULE {rule_name} [,...n]
注重:在删除一个规则前,必须先将与其绑定的对象解除绑定。
文章评论
共有位Admini5网友发表了评论 查看完整内容