当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server数据库技术(56)

MSSQL
SQL Server中容易混淆的数据类型
影响SQL Server性能的主要原因
浅谈SQL Server查询优化器中的JOIN算法
怎样缩小SQL Server数据库日志文件
SQL Server 2005最值得你升级的10个理由
SQL Server 商务智能特性对比
SQL Server 2005 SP1的新特性
怎样使用SQL Server来过滤数据
在SQL Server中处理空值时涉及的三个问题
怎样才能保护好 SQL Server 数据库
SQL SERVER数据库口令的脆弱性
SQL Server中的动态和静态内存分配
SQL存储过程学习:特殊的存储过程-触发器
几条常见的数据库分页 SQL 语句
SQL Server 2008服务器合并功能介绍
SQL Server数据库开发的二十一条军规
SQL Server 2008 的管理能力
快速删除重复记录,SQL Server如何实现?
将MySQL数据导入到Sql Server中
SQL Server和MySQL的安全性分析

MSSQL 中的 SQL Server数据库技术(56)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 135 ::
收藏到网摘: n/a

   规则(Rule) 就是数据库中对存储在表的列或用户自定义数据类型中的值的规定和限制。规则是单独存储的独立的数据库对象。规则与其作用的表或用户自定义数据类型是相互独立的,即表或用户自定义对象的删除、修改不会对与之相连的规则产生影响。规则和约束可以同时使用,表的列可以有一个规则及多个CHECK 约束。规则与CHECK 约束很相似,相比之下,使用在ALTERTABLE 或CREATE TABLE 命令中的CHECK 约束是更标准的限制列值的方法,但CHECK 约束不能直接作用于用户自定义数据类型。

9.2.1 创建规则
(1) 用CREATE RULE 命令创建规则
CREATE RULE 命令用于在当前数据库中创建规则,其语法如下:
CREATE RULE rule_name AS condition_expression
其中condition_expression 子句是规则的定义。condition_expression 子句可以是能用于WHERE 条件子句中的任何表达式,它可以包含算术运算符、关系运算符和谓词(如IN、LIKE、 BETWEEN 等)。

注意:condition_expression子句中的表达式必须以字符“@”开头。



(2) 用Enterprise Manager 创建规则
在Enterprise Manager 中选择数据库对象“Rules”,单击右键从快捷菜单中选择“NewRule”选项,即会弹出如图9-1 所示的创建规则属性对话框。输入规则名称和表达式之后,单击“确定”按钮,即完成规则的创建。


9.2.2 查看规则
(1) 用Enterprise Manager 查看规则
在Enterprise Manager 中选择“Rules” 对象,即可从右边的任务板中看到规则的大部分信息,包括规则的名称、所有者、创建时间,等如图9-2 所示。在SQL Server 2000 中不像7.0 版本可以直接在任务板中看到规则的表达式,这需要查看规则的属性。可以选择要查看的规则,单击右键,从快捷菜单中选择“Properties” 选项,即会出现如图9-3 所示的对话框,可以从中编辑规则的表达式。修改规则的名称可以通过Sp_rename 系统存储过程进行,也可以直接在图9-2 中用右键单击要修改的规则,从快捷菜单中选择“重命名(Rename)” 菜单项,进行名称修改。

(2) 用存储过程Sp_helptext 查看规则
使用Sp_helptext 存储过程可以查看规则的细节,其语法如下:
sp_helptext [@objname =] 'name'
其中[@objname =] 'name'子句指明对象的名称,用Sp_helptext 存储过程查看的对象可
以是当前数据库中的规则、缺省值、触发器、视图或未加密的存储过程。

 
例9-5: 查看规则hire_date_rule。
exec sp_helptext hire_date_rule
运行结果如下:
Text
--------------------------------------------------------------------------------------
create rule hire_date_rule
as @hire_date >= '1980-01-01' and @hire_date <= getdate()

9.2.3 规则的绑定与松绑
创建规则后,规则仅仅只是一个存在于数据库中的对象,并未发生作用。需要将规则与数据库表或用户自定义对象联系起来,才能达到创建规则的目的。联系的方法称为“绑定”。所谓绑定就是指定规则作用于哪个表的哪一列或哪个用户自定义数据类型。表的一列或一个用户自定义数据类型只能与一个规则相绑定,而一个规则可以绑定多对象,这正是规则的魅力所在。解除规则与对象的绑定称为“松绑”。

(1) 用存储过程Sp_bindrule 绑定规则
存储过程Sp_bindrule 可以绑定一个规则到表的一个列或一个用户自定义数据类型上。其语法如下:
sp_bindrule [@rulename =] 'rule',
[@objname =] 'object_name'
[, 'futureonly']
各参数说明如下:
[@rulename =] 'rule'
指定规则名称。
[@objname =] 'object_name'
指定规则绑定的对象。
'futureonly'