Ошибка вставки 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