如何在microsoft sql server 2012中创建外键约束?

时间:2016-03-31 06:37:07

标签: sql-server sql-server-2012

我正在尝试使用以下架构在microsoft sql server 2012中创建外键约束:

CREATE TABLE Period
(
    Period_ID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
    Training_History_Start_Period datetime NULL,
    Training_History_End_Period datetime NULL,
    Training_Target_Start_Period datetime NULL,
    Training_Target_End_Period datetime NULL,
    Scoring_History_Start_Period datetime NULL,
    Scoring_History_End_Period datetime NULL,
    Scoring_Target_Start_Period datetime NULL,
    Scoring_Target_End_Period datetime NULL
);

CREATE TABLE RiskScore
(
    Period_ID int FOREIGN KEY REFERENCES Period(Period_ID),
    Driver_ID int NULL,
    Risk_Score numeric(10,5) NULL,
    Run_on datetime NULL
);

在将数据插入数据库时​​,期间表采用所需数据但RiskScore表采用Period_ID列。此列未从Period表中获取Period_ID。

有人帮助我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

外键:定义

外键是一种在SQL Server数据库中强制引用完整性的方法。外键意味着一个表中的值也必须出现在另一个表中。引用的表称为父表,而具有外键的表称为子表。

在你的情况下,

期间是您的父表,RiskScore是您的子表。

外键强制引用完整性,但它不会将数据从父表引入子表。您应该手动将值填充到子表中。假设子表中的给定值在父表中不存在,那么您将收到错误消息。