参照完整性属于表间规则。对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一不改其二,就会影响数据的完整性:例如修改父表中关键字值后,子表关键字值未做相应改变;删除父表的某记录后,子表的相应记录未删除,致使这些记录称为孤立记录;对于子表插入的记录,父表中没有相应关键字值的记录;等等。对于这些设计表间数据的完整性,统称为参照完整性。 use master IF EXISTS ( SELECT * FROM sys.databases WHERE name = N'学生成绩管理' ) DROP DATABASE [学生成绩管理] GO CREATE DATABASE [学生成绩管理] ON PRIMARY (NAME = Student_data, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Student.mdf', SIZE = 10MB, MAXSIZE = unlimited, FILEGROWTH = 10%) LOG ON ( NAME = Student_log, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Student.ldf', SIZE = 1MB, maxsize=5mb, FILEGROWTH = 1mb) GO use 学生成绩管理 IF EXISTS ( SELECT * FROM sys.tables WHERE name = N'课程信息表' ) DROP table [课程信息表] go IF EXISTS ( SELECT * FROM sys.tables WHERE name = N'学生基本信息表' ) DROP table [学生基本信息表] go IF EXISTS ( SELECT * FROM sys.tables WHERE name = N'成绩表' ) DROP table [成绩表] go create table [课程信息表] ( 课程编号 varchar(10) primary key , 课程名称 varchar(10) not null, 学分int ) create table [学生基本信息表] ( 学号varchar(10) primary key , 姓名varchar(10) not null, 性别varchar(10) check((性别='男') or (性别='女')), 出生日期 datetime ) create table [成绩表] ( 选课ID int primary key, 学号varchar(10) not null, 课程编号 varchar(10) not null, 成绩int , constraint FK_Sid foreign key (学号) references 学生表(学号), constraint FK_Cid foreign key (课程号) references 课程表(课程号) ) go