Sql server 将数据输入到主键由多个列组成的表时出错,每个列都从其他表引用

Sql server 将数据输入到主键由多个列组成的表时出错,每个列都从其他表引用,sql-server,primary-key,foreign-key-relationship,multiple-columns,Sql Server,Primary Key,Foreign Key Relationship,Multiple Columns,我有4个表,其中3个有自己的主键。在第4个表中,所有其他3个表的主键都被引用为外键,这些外键被制成主键(所有3个外键的组合)。但是,在向列中输入数据时,会出现约束冲突错误。 代码片段如下所示: --Table # 1 create table PartSupplier( partSupplierID int primary key, fName varchar(20) NOT NULL, lName varchar(20),

我有4个表,其中3个有自己的主键。在第4个表中,所有其他3个表的主键都被引用为外键,这些外键被制成主键(所有3个外键的组合)。但是,在向列中输入数据时,会出现约束冲突错误。 代码片段如下所示:

    --Table # 1
    create table PartSupplier(
        partSupplierID int primary key,
        fName varchar(20) NOT NULL,
        lName varchar(20),
        houseNO varchar(20),
        streetName varchar(20),
        city varchar(20),
        dob date,
        contactNo varchar(50)
   )
   --Table # 2
   create table PartSpecialist(
            partSpecialistID int primary key,
        fName varchar(20) NOT NULL,
        lName varchar(20),
        houseNO varchar(20),
        streetName varchar(20),
        city varchar(20),
        dob date,
        contactNo varchar(15)
   )
   --Table # 3
   create table CarPart(
        partNumber int primary key,
        description varchar (250),
        vehicleID int NOT NULL,
        imagePath varchar(50)
   )
   --Table # 4 (with multiple foreign keys made into one primary key)
   create table SpecialistSuppliedPart(
        partSpecialistID int NOT NULL,
        partSupplierID int NOT NULL,
        partNumber int NOT NULL,
        condition varchar(10),
        dateAcquired date,
        costPrice int NOT NULL,
        constraint specialist_supplier_part_PK primary key (partSpecialistID, partSupplierID, partNumber),
        foreign key (partSpecialistID) references PartSpecialist(partSpecialistID),
        foreign key (partSupplierID) references PartSupplier(partSupplierID),
        foreign key (partNumber) references CarPart(partNumber)
   )
我尝试在表中插入以下值:

    3   3   5   USED    5000    2011-03-01
    3   13  18  NEW 6000    2011-06-26
在此基础上,我得到了以下错误:

其中,FK#U SpecializedAppliedPart#U PartSupplier是表1和表4之间的外键

我在各个表中都有这些条目。在互联网(包括stackoverflow.com)上彻底搜索之后,我找不到解决方案。 我做错了什么?
另外,我尝试使用MSSQLs设计工具添加外键和主键,但仍然导致相同的错误。

您的完整insert语句是什么?您的列顺序与表中描述的不同,那么哪个数字是哪个?您还首先检查了这些ID是否确实存在于父表中,对吗?我这么说是因为您的错误消息表明,表4中尝试插入PartSupplierId的内容在表1中不存在。此外,如果您是从Excel导入的,您确定这些表的填充顺序正确吗?你是不是一下子就把所有事情都做好了?因此,必须先填充表1到表3,然后才能从表4导入,除非先禁用约束,然后在禁用约束后使用CHECK重新启用
,以确保完整性(但如果存在不匹配,则再次尝试启用约束时仍会出错)@StevePettifer我最初试图从我拥有的Excel文件导入数据。下面是我尝试使用导入工具时发生的情况的图像:这是表4的状态(使用设计视图插入数据后出错):其他表的状态:表1:表2:表3:我发现了错误:第1个表中不存在条目13。这是一个相当愚蠢的错误@StevePettifer谢谢您的回复。不用担心。我们有时都这样做。