ข้อผิดพลาดในการแทรก SP: ขัดแย้งกับคีย์ต่างประเทศ

ฉันรู้ว่ามีคำถามหลายข้อที่เกี่ยวข้องกับเรื่องนี้ แต่ฉันยืนยันว่ามันไม่ได้ผล

ฉันมี sp เพื่อแทรกข้อมูลลงในตาราง ตารางก็มีคีย์ต่างประเทศเช่นกัน

นี่คือโครงสร้างของตารางของฉันที่ฉันต้องการแทรก

ป้อนคำอธิบายรูปภาพที่นี่

ฉันใช้ asp.net และ sp ของฉันมีลักษณะดังนี้

ALTER PROCEDURE [dbo].[spInsertJob]
@CompanyID INT,
@DepartmentID INT,
@No VARCHAR(50),
@Date DATETIME,
@CustomerID INT,
@JobTypeID INT,
@BillNo VARCHAR(50),
@GoodsType VARCHAR(50),
@Remarks VARCHAR(250),
@Cancelled BIT,
@CancelledRemarks VARCHAR(50),
@UserId INT,
@Closed BIT,
@Shipper VARCHAR(100),
@SupplierInvoice VARCHAR(50),
@HBillNo VARCHAR(50),
@JobStartedDate DATETIME,
@AssignedStaffid INT,
@VesselorFlightName VARCHAR(100),
@VesselorFlightArvDate DATETIME,
@FormNumber VARCHAR(50),
@FinancialId INT,
@NoofPackages INT,
@TypeOfPackages VARCHAR(100),
@ChargableWeight VARCHAR(50),
@Volume VARCHAR(50),
@DispatchMode VARCHAR(500),
@TransactionId INT OUT,
    @TransactionNo NVARCHAR(50) OUT

AS
BEGIN
     SET NOCOUNT ON;
     DECLARE @Id AS INT
       SELECT @Id=isnull(max(Id),0)+1 FROM  Job

 INSERT INTO Job( Id, CompanyID, DepartmentID, No, Date, CustomerID, JobTypeID, BillNo, GoodsType, Remarks, Cancelled, CancelledRemarks, UserId, Closed, Shipper, SupplierInvoiceNo, HBillNo, JobStartedDate, AssignedStaffid, VesselorFlightName, VesselorFlightArvDate, FormNumber,  NoOfPackages, TypeOfPackages, ChargableWeight, Volume, DispatchMode) 

values(@Id,@CompanyID,@DepartmentID,@No,@Date,@CustomerID,@JobTypeID,@BillNo,@GoodsType,@Remarks,@Cancelled,@CancelledRemarks,@UserId,@Closed,@Shipper,@SupplierInvoice,@HBillNo,@JobStartedDate,@AssignedStaffid,@VesselorFlightName,@VesselorFlightArvDate,   @FormNumber,@NoofPackages, @TypeOfPackages, @ChargableWeight, @Volume, @DispatchMode)

SELECT @TransactionId = @Id
SELECT @TransactionNo = @No 
SET NOCOUNT OFF;
END

ฉันได้รับข้อผิดพลาด

คำสั่ง INSERT ขัดแย้งกับข้อจำกัด FOREIGN KEY "FK_Job_JobType" ข้อขัดแย้งเกิดขึ้นในฐานข้อมูล "dbname", ตาราง "dbo.JobType"
คำสั่งถูกยกเลิกแล้ว

นี่คือตาราง JobType ของฉัน

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นฉันจึงพยายามแทรกแบบนี้และยังมีข้อผิดพลาดอยู่

INSERT INTO Job (Id,CompanyID,DepartmentID,No,Date,CustomerID,JobTypeID,BillNo,GoodsType,Remarks,Cancelled,CancelledRemarks,UserId,Closed,Shipper,SupplierInvoiceNo,HBillNo,JobStartedDate,AssignedStaffid,VesselorFlightName,VesselorFlightArvDate,FormNumber,NoOfPackages,TypeOfPackages,ChargableWeight,Volume,DispatchMode)

VALUES (88,1,0,'test',2018-01-01,13,1,3246,'','',0,'',2,0,'','',234632,2018-01-01,1,'test',2018-01-01,'',1,0,'','0','');

person Community    schedule 15.03.2018    source แหล่งที่มา
comment
อาจซ้ำกันของ คำสั่ง INSERT ที่ขัดแย้งกับข้อจำกัด FOREIGN KEY   -  person VDWWD    schedule 15.03.2018
comment
ค่าของ @JobTypeID คืออะไร และมีอยู่ใน dbo.JobType (ฉันถือว่าความสัมพันธ์ FK คุณช่วยแสดง FK ได้ไหม)   -  person HoneyBadger    schedule 15.03.2018
comment
ค่า JobTypeID ของ 1 ไม่มีอยู่ในตาราง JobType   -  person VDWWD    schedule 15.03.2018
comment
มันเป็นข้อจำกัดของคีย์ต่างประเทศ อาจเป็นได้ว่าคุณกำลังใส่ค่าสำหรับ job_id ซึ่งไม่มีอยู่ในตารางหลัก   -  person Sas    schedule 15.03.2018
comment
เพิ่มข้อมูลตารางประเภทงานของฉันแล้วคุณจะเห็นว่ามี 1 รายการอยู่ที่นั่น   -  person    schedule 15.03.2018
comment
ความสัมพันธ์นี้รวมถึง CompanyID และ DepartmentID หรือไม่   -  person HoneyBadger    schedule 15.03.2018
comment
stackoverflow.com/ คำถาม/2965837/ ตรวจสอบลิงก์นี้หากช่วยได้   -  person Sas    schedule 15.03.2018


คำตอบ (1)


ในแบบสอบถามแบบแทรกของคุณ JobTypeID กำลังถูกแทรกเป็น '' หากเป็นคีย์ต่างประเทศ คุณจะไม่สามารถแทรก '' เข้าไปได้ ป้อนรหัสที่ถูกต้องลงไป

person Praneet Nadkar    schedule 15.03.2018
comment
ฉันกำลังใส่ 1 ไม่ใช่ - person ; 15.03.2018