📜  MS SQL Server中的外键(1)

📅  最后修改于: 2023-12-03 15:32:59.549000             🧑  作者: Mango

MS SQL Server中的外键

在MS SQL Server中,外键是表之间的约束关系,用于确保数据的完整性和一致性。外键指向另一张表中的一个或多个列,将数据行之间的关系建立起来。

创建外键

要创建一个外键,需要先在数据库中创建两个表。假设我们有两个表,一个是Students,另一个是Scores。Students表中有一个StudentID字段,Scores表中也有一个StudentID字段,这两个字段可以建立起关系。

我们可以使用以下的SQL语句在Scores表上创建一个外键:

ALTER TABLE Scores
ADD CONSTRAINT FK_StudentID
FOREIGN KEY (StudentID) REFERENCES Students(StudentID);

在这个例子中,我们为外键指定了一个名称FK_StudentID,它指向了Students表中的StudentID字段。

外键约束

外键约束是用于确保数据完整性和一致性的一种机制。MS SQL Server支持两种类型的外键约束:ON DELETE和ON UPDATE。

  • ON DELETE约束:当一个表中的行被删除时,ON DELETE约束决定了与该行相关联的其他表中的行的行为。有三种ON DELETE约束:CASCADE、SET NULL和SET DEFAULT。

    • CASCADE:将从父表中删除的所有行的相关行从子表中删除。
    • SET NULL:将从父表中删除的所有行的相关行的外键列设置为NULL。
    • SET DEFAULT:将从父表中删除的所有行的相关行的外键列设置为默认值。
  • ON UPDATE约束:当一个表中的行被更新时,ON UPDATE约束决定了与该行相关联的其他表中的行的行为。有两种ON UPDATE约束:CASCADE和SET NULL。

    • CASCADE:将更新父表中的所有行的所有相关行也更新到子表中。
    • SET NULL:将更新父表中的所有行的相关行的外键列设置为NULL。
删除外键

如果要删除外键,可以使用以下的SQL语句:

ALTER TABLE Scores
DROP CONSTRAINT FK_StudentID;
总结

外键是确保数据完整性和一致性的一种机制,在MS SQL Server中,我们可以使用ALTER TABLE语句来创建、修改、删除外键。外键约束可以在创建外键时添加,也可以稍后添加。在实现数据模型时,外键约束是非常重要的,因为它可以防止数据损坏,同时也可以使应用程序更加可靠和高效。