外键在表中显示为NULL。为什么?

时间:2018-10-11 18:52:58

标签: sql sql-server foreign-keys

我在将外键正确插入表中遇到麻烦。我用这种格式创建了几张桌子:

CREATE TABLE tbl_Example
(
    ExampleID INT IDENTITY(1,1),
    Example VARCHAR(5) NULL,
    Example VARCHAR(6) NULL,
    Example VARCHAR(MAX),
    Example VARCHAR(MAX),
    ExampleFK INT, 
    Example VARCHAR(MAX),
    etc.
)

并按照以下格式将值插入到该表中:

SELECT * 
FROM tbl_Example

INSERT INTO tbl_Example (Example, Example, Example, Example, etc.)
VALUES ('data', 'data', 'data', 'data', etc.)

在我的代码末尾放置了此代码,以便向我的原始表添加外键:

ALTER TABLE tbl_Example 
    ADD FOREIGN KEY (ExampleFK) REFERENCES tbl_Example1 (Example1ID) 

由于某种原因,在执行后,外键列完全用NULL填充。我尝试调整外键列的位置,并使用了多种语法形式来创建外键并更正问题,但没有任何效果。密钥和连接似乎已经建立,只是由于某种原因未正确显示在我的表中。

编辑:值不应为NULL。 Example1ID没有NULL值。

2 个答案:

答案 0 :(得分:0)

具有NULLS的原因是将外键添加到tbl_Example引用的示例中 tbl_Example1(Example1ID)

所以这不是一对一的关系,这意味着tbl_Example1 PK不会自动填充

这意味着任何tbl_Example1 PK都可以作为FK填充到tbl_Example中 您需要通过应用程序或数据库以其他方式强制执行此操作

答案 1 :(得分:0)

您是否认为“ ADD FOREIGN KEY”会插入值?它只是创建约束。您现在必须更新行。