我在SQL中颇为新颖,想要寻求帮助,因为我正在努力解决外键问题。我一直在搜索和谷歌搜索几天没有结果。SQL外键返回NULL
我的问题是我创建了2个表,其中一个是主键,另一个是主键和外键。你可以看到下面的示例代码:
CREATE TABLE CarList
(
C_Id int IDENTITY (1,1) PRIMARY KEY,
Car_Model nvarchar(255),
)
比我插入数据到这个表如下图所示:
INSERT INTO CarList (Car_Model)
VALUES ('AUDI'), ('BMW'), ('PORSCHE')
比我创建与外键的第二个表,如下图所示:
CREATE TABLE Series
(
S_Id int IDENTITY (1,1) PRIMARY KEY,
Car_Series nvarchar(255),
Car_Id int FOREIGN KEY REFERENCES CarList(C_Id)
)
而作为最后一步,我插入第二个表格的数据:
INSERT INTO Series(Car_Series)
VALUES ('911c'), ('330d'), ('80TDI')
这里我的问题实际上来了。一旦我全部设置并用外键调用表格,应该具有外键值的列显示为NULL
。我已经完成了SQL Server Management Studio中两个表之间的关系,但结果仍然相同。
然后,我试图用连接映射两个表,并仍然相同。我在互联网上阅读的所有内容基本上都没有说明值应该如何显示在外键列中,或者至少我没有明白这一点。我希望第一台桌上汽车模型对应第二张桌子上的ID号。所以如果我想从AUDI的第一个表中调用ID 1来获得第二个表80TDI系列的ID。
你能帮忙吗?
谢谢你马克!现在很清楚。唯一出现在我脑海的是 - 如果我有非常大量的数据插入到第二个表中,该怎么办?不会添加相应的数字需要太多时间?有没有可能为此自动选择,或者我必须采用这种方法? – TheShadow
不,它不应该明显增加开销,只要它在相同的插入语句中。数据量也很低,因为它只是一个整数。 –
再次感谢你马克!现在很清楚:) – TheShadow