با سلام خدمت دوستان

بنده 1 جدول اصلی دارم و 12 جدول دیگه که این 12 جدول کلید خارجی به جدول اصلی دارند.
زمانی که پروسیجر می خواد اجرا بشه و دیتا اینسرت بشه با خطای The INSERT statement conflicted with the FOREIGN KEY constraint "FK_tblArchiveDetail_tblCatalog". The conflict occurred in database "Tehran", table "dbo.tblCatalog", column 'CatalogId'.The statement has been terminated مواجه میشم.

کد سی شارپ بوسیله پروسیجر:
context.InsertArchiveDetail(Helper.ID, bookStr, catalogStr, designStr, documentStr, filmStr, magazineStr, paintingStr, photoStr, postalCardStr, posterStr, printStr, voiceStr, uploadImage1.FileBytes, uploadImage2.FileBytes, uploadImage3.FileBytes, uploadImage4.FileBytes, uploadImage5.FileBytes, uploadImage6.FileBytes,
uploadImage7.FileBytes, uploadImage8.FileBytes, uploadImage9.FileBytes, uploadImage10.FileBytes, uploadImage11.FileBytes, uploadImage12.FileBytes, uploadImage13.FileBytes,
uploadImage14.FileBytes, uploadImage15.FileBytes, uploadImage16.FileBytes, uploadImage17.FileBytes, uploadImage18.FileBytes, uploadImage19.FileBytes, uploadImage20.FileBytes);



اسکریپت اس کیو ال مربوط به پروسیجر:

USE [Tehran]
GO
/****** Object: StoredProcedure [dbo].[InsertArchiveDetail] Script Date: 2020-12-01 6:53:39 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertArchiveDetail]
@Id nvarchar(32),
@BookId nvarchar(32),
@CatalogId nvarchar(32),
@DesignId nvarchar(32),
@DocumentId nvarchar(32),
@FilmId nvarchar(32),
@MagazineId nvarchar(32),
@PaintingId nvarchar(32),
@PhotoId nvarchar(32),
@PostalCardId nvarchar(32),
@PosterId nvarchar(32),
@PrintId nvarchar(32),
@VoiceId nvarchar(32),
@Image1 varbinary(max),
@Image2 varbinary(max),
@Image3 varbinary(max),
@Image4 varbinary(max),
@Image5 varbinary(max),
@Image6 varbinary(max),
@Image7 varbinary(max),
@Image8 varbinary(max),
@Image9 varbinary(max),
@Image10 varbinary(max),
@Image11 varbinary(max),
@Image12 varbinary(max),
@Image13 varbinary(max),
@Image14 varbinary(max),
@Image15 varbinary(max),
@Image16 varbinary(max),
@Image17 varbinary(max),
@Image18 varbinary(max),
@Image19 varbinary(max),
@Image20 varbinary(max)
AS
BEGIN
SET NOCOUNT ON


SELECT @BookId = tblBook.BookId, @CatalogId = tblCatalog.CatalogId,@DesignId = tblDesign.DesignId,@DocumentId = tblDocument.DocumentId,@FilmId = tblFilm.FilmId,@MagazineId = tblMagazine.MagazineId,@PaintingId = tblPainting.PaintingId,@PhotoId=tblPhoto.PhotoId,@ PostalCardId = tblPostalCard.PostalCardId,@PosterId = tblPoster.PosterId,@PrintId = tblPrint.PrintId,@VoiceId = tblVoice.VoiceId
FROM tblBook,tblCatalog,tblDesign,tblDocument,tblFilm,t blMagazine,tblPainting,tblPhoto,tblPostalCard,tblP oster,tblPrint,tblVoice,tblArchiveDetail
WHERE tblBook.BookId = tblArchiveDetail.BookId
AND tblCatalog.CatalogId = tblArchiveDetail.CatalogId
AND tblDesign.DesignId = tblArchiveDetail.DesignId
AND tblDocument.DocumentId = tblArchiveDetail.DocumentId
AND tblFilm.FilmId = tblArchiveDetail.FilmId
AND tblMagazine.MagazineId = tblArchiveDetail.MagazineId
AND tblPainting.PaintingId = tblArchiveDetail.PaintingId
AND tblPhoto.PhotoId = tblArchiveDetail.PhotoId
AND tblPostalCard.PostalCardId = tblArchiveDetail.PostalCardId
AND tblPoster.PosterId = tblArchiveDetail.PosterId
AND tblPrint.PrintId = tblArchiveDetail.PrintId
AND tblVoice.VoiceId = tblArchiveDetail.VoiceId;


INSERT INTO tblArchiveDetail(Id,
BookId,
CatalogId,
DesignId,
DocumentId,
FilmId,
MagazineId,
PaintingId,
PhotoId,
PostalCardId,
PosterId,
PrintId,
VoiceId,
Image1,
Image2,
Image3,
Image4,
Image5,
Image6,
Image7,
Image8,
Image9,
Image10,
Image11,
Image12,
Image13,
Image14,
Image15,
Image16,
Image17,
Image18,
Image19,
Image20)
VALUES
(@Id,
@BookId,
@CatalogId,
@DesignId,
@DocumentId,
@FilmId,
@MagazineId,
@PaintingId,
@PhotoId,
@PostalCardId,
@PosterId,
@PrintId,
@VoiceId,
@Image1,
@Image2,
@Image3,
@Image4,
@Image5,
@Image6,
@Image7,
@Image8,
@Image9,
@Image10,
@Image11,
@Image12,
@Image13,
@Image14,
@Image15,
@Image16,
@Image17,
@Image18,
@Image19,
@Image20);
END


لطفا راهنمایی کنید چکار کنم؟

با تشکر