【发布时间】:2018-08-24 03:54:57
【问题描述】:
我知道有几个与此相关的问题,但我承认它们没有用。
我有一个 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','');
【问题讨论】:
-
@JobTypeID的值是多少,在dbo.JobType中是否存在(我假设FK关系,你能显示FK吗?) -
1的JobTypeID的值在JobType表中不存在。 -
这是一个外键约束,可能是您插入的 job_id 值在父表中不存在。
-
添加了我的jobtype表数据,你可以看到有1个
标签: sql asp.net stored-procedures