§7.数据完整性和事务处理<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一.数据完整性的含义
1.数据完整性:是指数据的一致性(Accuracy)和可靠性(Reliability).它是为防止数据库中存在不符合语义规定的数据,防止因错误信息的输入,输出而造成无效的操作或错误信息.它包括实体完整性(Entity Integrity),域完整性(Domain Integrity),参照完整性(Referential Integrity),用户定义完整性(User-defined Integrity).
2.实体完整性:表的每一行在表中是唯一的实体.
3.域完整性:也称列完整性,要求域中指定的列(字段)的数据具有正确的数据类型,格式和有效的数值范围.
4.参照完整性:指两个表中的主码和外码的数据应对应一致.
5.用户自定义完整性:允许用户定义不属于其它任何一完整性规则(例如:性别只能是男或女).
二.规则.
1.规则:就是数据库中,对存储在数据库中表的列(字段)或用户自定义数据类型中的值的规定和限制.规则要在insert和update语句之前给出.
2.创建规则:(右健单击规则--[新建规则])
create rule 规则名
as @变量名 条件 --条件可以是where子句中任何有效的表达式
eg:
create rule Age_rule
as @old_scope between 17 and 28
create rule sex_rule
as @xb_scope in('男','女')
3.绑定规则
sp_bindrule 规则名,'表.字段名'
eg:
sp_bindrule enter_date_rule,'学生表.入学年份'
4.解除绑定
sp_unbindrule '表.字段名'
5.删除规则
drop rule 规则名
6.注意事项:
1)规则只能处理常量,SQL Server函数,不能用来查找表,不能比较表中的列.
2)表中的每列只能与一种规则绑定,若多次绑定,则后者覆盖前者.
3)若要删除规定,先要解除规则的绑定关系.
4)在系统中大量拷贝数据时,规则不起作用.
5)在使用规则时,要确保规则中的值与其绑定列的数据类型相一致.
三.默认
1.默认:是一种数据库对象,它与默认值约束的功能一样.
2.创建默认:(右健单击默认--[新建默认])
create default 默认名 as 常量
eg:
create default age_limited as 18
3.绑定默认和解除绑定默认(同规则)
eg:
sp_bindefault age_limited,'学生表.年龄'
sp_unblindefault '学生表.年龄'
4.删除默认
drop default 默认名称
转载于:https://blog.51cto.com/wnight88/141545