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

MSSQL
SQLServer中求两个字符串的交集
SQL Server 触发器 表的特定字段更新时,触发Update触发器
SQL 查询分析中使用net命令问题
SQLServer 批量导入目录文件
sql语言中delete删除命令语句详解
Linq to SQL 插入数据时的一个问题
一个简单的SQL 行列转换语句
SQLServer 常用语句(按功能分)
SQLServer 管理常用SQL语句
SQL Server 2000中的触发器使用
SQL小技巧 又快又简单的得到你的数据库每个表的记录数
Sql Server 2000删除数据库备份文件
批量更新数据库所有表中字段的内容,中木马后的急救处理
sqlserver 通用分页存储过程
远程连接局域网内的sql server 无法连接 错误与解决方法
目前用到的两个分页存储过程代码
sqlserver 多表关联时在where语句中慎用trim()方法
Sql2005注射辅助脚本[粗糙版]
sql 2005不允许进行远程连接可能会导致此失败的解决方法
MSSQL2005数据库备份导入MSSQL2000

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 136 ::
收藏到网摘: 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'