SQL Server中外键的作用和添加方法
在数据库中,外键是一种约束,用于保证数据的完整性和一致性。外键是指一个表中的一个或多个列,其值必须与另一个表中的主键或唯一键相匹配。通过外键,可以实现表之间的关联和引用。
在SQL Server中,可以使用ALTER TABLE命令来添加外键约束。具体的语法格式如下:
ADD CONSTRAINT 外键名 FOREIGN KEY (列名)
REFERENCES 参照表名 (参照列名)
其中,表名是要添加外键约束的表,列名是要作为外键的列,参照表名是被参照的表,参照列名是被参照的主键或唯一键列。外键名是自定义的外键约束名称,可以省略。ON DELETE和ON UPDATE是可选的参数,用于指定当参照表中的数据被删除或更新时,外键表中的数据如何处理。有四种选项:
1.NO ACTION:默认值,表示不做任何操作,如果有冲突,则抛出异常。
2.CASCADE:表示级联操作,即当参照表中的数据被删除或更新时,外键表中的数据也相应地被删除或更新。
3.SET NULL:表示将外键表中的数据设置为NULL,前提是该列允许为NULL。
4.SET DEFAULT:表示将外键表中的数据设置为默认值,前提是该列有默认值。
例如,假设有两个表:学生表(Student)和课程表(Course),学生表中有学号(Sno)、姓名(Sname)和所选课程号(Cno)三个字段,课程表中有课程号(Cno)、课程名(Cname)和学分(Credit)三个字段。现在要在学生表中添加一个外键约束,使得所选课程号必须与课程表中的课程号相匹配,并且当课程表中的数据被删除或更新时,学生表中的数据也相应地被删除或更新。可以使用以下语句:
这样,就在学生表中添加了一个名为FK_Student_Course的外键约束。如果试图在学生表中插入或修改一个不存在于课程表中的课程号,则会报错。