规则给表字段或用户定义的数据类型的数值提供一个预定义的限制,用来指定字段可以接受哪些数据。要使用一个规则来限制字段值,首先需要在数据库中建立起该规则,然后将规则绑定到表字段或用户定义数据类型。
1.创建规则
创建规则可以使用企业管理器或CREATE RULE语句来完成。
(1)使用企业管理器建立规则
在企业管理器中建立规则的操作步骤如下:
1)在企业管理器中展开服务器组,然后展开一个服务器。
2)展开“数据库”文件夹,然后展开要在其中建立规则的数据库。
3)在所选取数据库的下方使用鼠标右键单击“规则”节点,然后在弹出的快捷菜单中选择“新建规则”命令。
4)在“名称”文本框中为规则指定一个名称,如图2-98所示。
5)在“文本”框中输入一个条件表达式,在这个表达式的开头处必须是一个局部变量,用来表示在插入或修改记录时所提供的数值。
6)单击“确定”按钮,完成规则的建立过程。
图2-98 “规则属性”对话框
此时,可以在详细信息窗格中查看到所建规则的名称、所有者、建立时间及条件表达式等信息。
(2)使用CREATE RULE语句建立规则
CREATE RULE语句用于在当前数据库中建立一个规则,该语句的语法格式如下:
其中规则名称必须符合标识规则,可以选择是否指定规则所有者的名称。条件表达式是定义规则的条件。一个规则是任何可以在“WHERE”子句中出现的表达式,其中使用一个局部变量来表示通过UPDATE或INSERT语句输入的值,而且可以使用各种算术运算符和逻辑运算符(包括IN、LIKE、BETWEEN在内),也可以使用不涉及数据库对象的内置函数,但不能引用字段或其他数据库对象。条件表达式包含的局部变量必须以符号@开始,创建规则时该变量可以使用任何有效的名称。
使用CREATE RULE语句建立规则时,需要注意该语句不能与其他Transact-SQL语句出现在同一个批处理中。
例2-85 在“学生管理数据库”中建立一个规则,其名称为“系别规则”,将这个规则绑定到“学生基本情况表”的“系别”字段上,可以限制在输入或修改记录时系名称必须是“信息管理系”、“计算机系”或“电子系”,如图2-99所示。
图2-99 使用CREATE RULE语句建立规则
2.绑定规则
在数据库中建立一个规则后,还必须将该规则绑定到表字段或用户定义的数据类型上才能让它发挥作用,即对用户输入的数据进行预过滤,以决定是否接受这些数据。绑定规则的任务可以使用企业管理器或系统存储过程sp_bindrule来完成。
(1)使用企业管理器绑定规则
如果要在企业管理器中绑定规则,可以按照下面的步骤操作:
1)在企业管理器中展开服务器组,然后展开一个服务器。
2)展开“数据库”文件夹,然后展开规则所属的数据库。
3)在目标数据库下方单击“规则”,然后右键单击要绑定的规则,在弹出的快捷菜单中选择“属性”命令。
4)在如图2-100所示的“规则属性-系列规则”对话框中执行下列操作之一:如果要将规则绑定到表中的一个字段上,可以单击“绑定列”按钮;如果要将规则绑定到一个用户定义的数据类型上,可以单击“绑定UDT”按钮。(www.xing528.com)
图2-100 “规则属性-系列规则”对话框
5)返回“规则属性-系列规则”对话框后单击“确定”按钮,完成绑定操作。
(2)使用系统存储过程sp_bindrule绑定规则
系统存储过程sp_bindrule用于将一个规则绑定到表字段或用户定义的数据类型上,其语法格式分别为:
其中规则名称是在企业管理器或CREATE RULE语句中为规则指定的名称。
例2-86 将前面建立的系别规则绑定到学生基本情况表的系别字段上。
3.解除规则绑定
使用系统存储过程sp_unbindrule来解除绑定在表字段或用户定义的数据类型上的规则,语法格式如下:
例2-87 解除学生基本情况表的系别字段的规则。
4.删除规则
规则可以用DROP RULE语句进行删除,其语法格式如下:
例2-88 删除前面创建的系别规则。
也可以使用企业管理器来删除规则,操作步骤如下:
1)在企业管理器中展开服务器组,然后展开一个服务器。
2)展开“数据库”文件夹,然后展开待删除的规则所属的数据库。
3)在目标数据库下方单击“规则”节点,使当前数据库中包含的所有规则显示在详细信息窗格中。
4)右键单击要删除的规则,然后在弹出的快捷菜单中选择“删除”命令。
5)当出现如图2-101所示的“除去对象”对话框时,如果要查看删除该规则对数据库带来的影响,可以单击“显示相关性”按钮。单击“全部除去”按钮,删除所选定的规则。
图2-101 “除去对象”对话框
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。