1

複数のテーブルからデータを取得して、それらを他のテーブルにインポートしようとしています。宛先は ID ID を使用し、ソース テーブルは異なる ID を持っています。挿入から新しい ID ID を取得し、それらを宛先 DB の別のテーブルに追加する必要があります。ここに私がこれまでに持っているものがありますが、それを機能させる方法がわかりません。TMMYId を OUTPUT に追加しようとしましたが、うまくいきません。

DECLARE @MakeModels TABLE (MakeId int, ModelId int, YearId int, TMMYId int)

INSERT INTO @MakeModels (MakeId, ModelId, YearId, TMMYId)
SELECT MakeID, ModelID, YearID, T.id TypeMakeModelYear T 
JOIN Fitment F 
ON F.TMMYID = T.id JOIN PartToAppCombo P ON F.PartToAppComboID = P.ID
WHERE P.PartmasterID IN (SELECT PP.PartMasterID FROM PartPriceInv PP WHERE Discontinued   
= 0)

DECLARE @MakeOutput TABLE (MakeId int, TMMYId int)
DECLARE @ModelOutput TABLE (ModelId int, TMMYId int)
DECLARE @YearOutput TABLE (YearId int, TMMYId int)

INSERT INTO Class1 (Name, Active) 
OUTPUT INSERTED.Class1Id, MM.TMMYId INTO @MakeOutput
SELECT M.Description, 1 FROM Makes M JOIN @MakeModels MM ON M.id = MM.MakeId
WHERE NOT EXISTS (SELECT Class1Id FROM Class1 WHERE Name = M.Description )

INSERT INTO Class2 (Name, Active) 
OUTPUT INSERTED.Class2Id, MM.TMMYId INTO @ModelOutput
SELECT M.Description, 1 FROM Models M JOIN @MakeModels MM ON M.id = MM.ModelId
WHERE NOT EXISTS (SELECT Class2Id FROM Class2 WHERE Name = M.Description)

INSERT INTO Class3 (Name, Active) 
OUTPUT INSERTED.Class3Id, MM.TMMYId INTO @YearOutput
SELECT M.Description, 1 FROM Years M JOIN @MakeModels MM ON M.id = MM.YearId
WHERE NOT EXISTS (SELECT Class3Id FROM Class3 WHERE Name = M.Description)

INSERT INTO MMY (class1Id, class2Id, class3Id) 
SELECT M.MakeId, MO.ModelId, Y.YearId FROM @MakeOutput M JOIN @ModelOutput MO ON    
M.TMMYId = MO.TMMYId
JOIN @YearOutput Y ON MO.TMMYId = Y.TMMYId
4

0 に答える 0