规则的概念:
规则(Rules)是用于执行一些与检查约束相同的功能。检查约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个检查约束。
检查约束可以在CREATE TABLE语句中定义,而规则作为独立的对象创建,然后绑定在指定的列上。
规则也是维护数据库中数据完整性的一种手段,使用它可以避免表中出现不符合逻辑的数据,例如工资小于0。
创建规则:
使用CREATE RULE语句可以创建规则,其语法结构如下:
CREATERULE <架构名>.<规则名>
AS<规则表达式>
规则表达式中可以包含算术运算符、关系运算符和谓词(例如IN、LIKE、BETWEEN等)。
例:
创建一个规则SexRule,指定变量@sex的取值只能为'男'或'女',代码如下:
CREATERULE SexRule
AS@sex IN ('男', '女')
例:
创建一个规则WageRule,指定变量@wage的取值范围为0~50000,代码如下:
CREATERULE WageRule
AS@wage BETWEEN 0 AND 50000
绑定规则:
绑定规则是指将已经存在的规则应用到列或用户自定义的数据类型中。使用存储过程sp_bindrule可以将规则绑定到列或用户自定义的数据类型,语法如下:
sp_bindrule [ @rulename = ]规则名,
[ @objname = ]对象名
例:
规则SexRule绑定到表Employees的列Sex上的语句如下:
USE HrSystem
GO
EXECsp_bindrule 'SexRule', 'Employees.Sex'
GO
执行的结果如下:
已将规则绑定到表的列。
例:
下面通过一个INSERT语句验证规则的应用效果。执行下面的INSERT语句,向表Employees中插入一条记录。
USEHrSystem
GO
INSERTINTO Employees (Emp_name, Sex, Title, Wage,IdCard,Dep_id)
VALUES('小李', '无', '职员',
10000, '110123xxxx', 1)
GO
注意,INSERT语句设置列Sex的值为“无”。因为列Sex绑定到规则SexRule,而在规则SexRule中规定列值只能是“男”或“女”。因此,执行INSERT语句的结果如下:
消息513,级别16,状态0,第2行
列的插入或更新与先前的CREATE RULE语句所指定的规则发生冲突。该语句已终止。冲突发生于数据库'HrSystem',表'dbo.Employees',列'Sex'。
语句已终止。
返回结果中提示INSERT语句中指定的列Sex的指定值('无')不满足之前绑定的规则。
解除规则绑定:
使用存储过程sp_unbindrule可以解除规则的绑定,它的基本语法如下:
sp_unbindrule[ @objname = ]对象名
对象名可以是表名和列名,也可以是自定义的数据类型。
例:
使用存储过程sp_unbindrule取消表Employees的列Sex上绑定的规则,具体语句如下:
USE HrSystem
GO
EXECsp_unbindrule 'Employees.Sex'
GO
执行的结果如下:
(所影响的行数为1
行)
已从表的列上解除了规则的绑定。
删除规则:
在SQL Server Management Studio中,右键单击指定的规则,在弹出菜单中选择“删除”项则删除指定的规则对象。
也可以使用DROP RULE语句从当前数据库中删除一个或多个规则,语法如下:
DROPRULE 规则名1 [,规则名2, ...,规则名n]
在删除规则前,需要调用sp_unbindrule存储过程解除该规则的绑定。
例:
使用DROP RULE删除规则SexRule,具体语句如下:
USE HrSystem
EXECsp_unbindrule 'Employees.Sex'
DROPRULE SexRule
分享到:
相关推荐
SQLSERVER数据库命名规范
无需安装sqlserver数据库,直接远程连接数据库,可以更方便的操作sqlserver数据库,且占用资源小
关于SQL server2005中插入汉字变成问号的解决办法 1.右击你所建的数据库,点击“属性”,选择“选项”并点击。将其中的排序规则设置为:Chinese_PRC_CI_AS(选择下拉列表框即可设置),然后“确定“。2.在表中将你的...
解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...
1、如果是从SQL2008升级到SQL2008R2那么只能选择左侧“安装”对应右侧“从SQL SERVER 2000,SQL 2005或SQL 2008升级”这个选项来升级。 大家也注意到有一个“维护”但是这个选项是“从SQL 2008其他例如EXPRESS版本...
SQLserver中按年月日生成日期型自增编码.pdf
使用这种方法的一些潜在缺陷包括数据安全(执行业务程序的数据储存在一个表格中),和向业务逻辑程 序输入参数的非动态性。如果您觉得对于您的业务问题来说,这种方法利大于弊的话,我鼓励您尝试一下这种方法。
3.1 使用SQL Server 配置管理器 配置网络协议 默认的网络配置 管理服务 3.2 系统配置 任务管理 资源分配 系统分页文件的位置 非必需的服务 网络协议 与SQL Server 早期版本之间的...
关系型数据通常以规范化形式保存,就是说你应该尽可能少地重复数据;通常情况下,表与表之间仅通过各种键值实现关联。进一步地讲,规范化的含义就是:你不能在数据库...本文将为大家介绍如何使用SQL Server来过滤数据。
SqlServer命名、撰写规则及范例,实用,实在。
第1章 SQL Server 2000使用基础 第2章 数据库的创建和维护 第3章 表的创建与管理 第4章 使用选择查询检索数据 第5章 使用操作查询更新数据 第6章 使用索引和视图 第7章 Transact-SQL程序设计 第8章 使用默认值、规则...
根据code39码的规则,实现了用sqlserver的sql代码生成code39的校验码的标量函数。
第6章 使用SQL Server Management Studio配置SQL Server 6.1 使用SQL Server Management Studio管理配置 6.2 确定系统和服务器信息 6.3 配置身份验证和审核 6.3.1 设置身份验证模式 6.3.2 设置审核级别 6.3.3 启用或...
SQL server 2005安装问题及解决办法,自己积累的,绝对能解决问题,试试就知道
SQl SERVER 进阶 学习课件 学习E-R图的绘制,理解数据库范式,掌握如何规范地设计数据库。 数据的高级查询、子查询。 创建和使用索引、视图,实现高效的数据管理。 学习使用T-SQL进行数据库编程,实现多功能数据管理...
第6章 使用SQL Server Management Studio配置SQL Server 6.1 使用SQL Server Management Studio管理配置 6.2 确定系统和服务器信息 6.3 配置身份验证和审核 6.3.1 设置身份验证模式 6.3.2 设置审核级别 6.3.3 启用或...
第1章初识SQL Server2012.ppt 网盘文件永久链接 第2章数据库的操作ppt 第3章数据表的操作.ppt 第4章Transact-SQL语言基础.ppt 第5章轻松掌握Transact-SQL语句.ppt 第6章认识函数.ppt 第7章Transact-SQL查询.ppt 第8...
第6章 使用SQL Server Management Studio配置SQL Server 6.1 使用SQL Server Management Studio管理配置 6.2 确定系统和服务器信息 6.3 配置身份验证和审核 6.3.1 设置身份验证模式 6.3.2 设置审核级别 6.3.3 启用或...
解决sqlserver,float去除后面的零超过四位会转换成特殊的编码格式的问题,无限制去除后面多余的0
sqlserver排序规则在全角与半角处理中的应用 sql源码 简单明了好资料