維護父子行之間的關係

假設我們在 Company 表中有一行使用 companyId 1.我們可以在 employee 表中插入具有 companyId 1 的行:

insert into Employee values (17, 'John', 1)

但是,我們無法插入具有不存在的 CompanyId 的員工:

insert into Employee values (17, 'John', 111111)

訊息 547,級別 16,狀態 0,行 12 INSERT 語句與 FOREIGN KEY 約束“FK__Employee__Compan__1EE485AA”衝突。衝突發生在資料庫 MyDb,表“dbo.Company”,列’CompanyId’中。該語句已終止。

此外,只要 employee 表中至少有一個引用它的子行,我們就無法刪除公司表中的父行。

delete from company where CompanyId = 1

訊息 547,級別 16,狀態 0,行 14 DELETE 語句與 REFERENCE 約束“FK__Employee__Compan__1EE485AA”衝突。衝突發生在資料庫 MyDb,表“dbo.Employee”,列’CompanyId’中。該語句已終止。

外來鍵關係可確保公司和員工行不會取消連結