【发布时间】:2018-10-23 07:02:21
【问题描述】:
我正在为我的学校项目开发一个数据库,我必须通过规范化提供给我们的示例表来生成一个功能数据库。 我遇到麻烦的一张桌子是行程。我从规范化中生成 3 个表,它们是“目的地”、“路线”和“路线目的地”。
目的地的代码是:
create table Destinations
(
DestinationID varchar(5) primary key,
Name varchar(45)
);
行程代码为:
create table Itineraries
(
ItineraryID varchar(5),
Name varchar(45)
);
最后一张表的代码是:
create table Itinerary_Destinations
(
DI varchar(5) primary key,
ItineraryID varchar(5) foreign key references Itineraries(ItineraryID),
Itinerary_Name varchar(45),
DestinationID varchar(5) foreign key references Destinations(DestinationID),
Destination_Name varchar(45)
);
除“Destination_Name”和“Itinerary_Name”列外,已将数据插入到所有 3 个表中。我尝试使用的代码作为错误返回。代码如下所示。
insert into Itinerary_Destinations (Itinerary_name)
select Name from Itineraries where
Itineraries.ItineraryID = ItineraryID;
它返回的错误是
消息 515,级别 16,状态 2,第 1 行无法将值 NULL 插入 列“DI”,表“DDDAssignment.dbo.Itinerary_Destinations”;柱子 不允许空值。插入失败。声明已终止。
有没有一种方法可以在不创建需要主键的新记录的情况下完成插入 Destination_Name 和 Itinerary_Name 的任务?
还是我应该手动操作?
【问题讨论】:
标签: sql sql-server database ssms