De Fusion SQL Server - mise en dossiers appariés à l'autre de la table temporaire
J'ai un MERGE
requête de mise à jour des données. En cas de non-match, je suis de l'insertion d'enregistrements de la source de l'obtention de la sortie d'une table temporaire.
Serait-il possible d'obtenir les enregistrements correspondants à table temporaire ainsi? Fondamentalement, pour éviter la duplication des données dans un traitement ultérieur-je avoir une copie des enregistrements correspondants.
C'est mon MERGE
commande:
MERGE Product.ProductHeaderRepository AS t
USING (SELECT GETDATE() as d, c1, c2, c3,
Name FROM Supplier.ProductHeaderImport
WHERE (BatchID = @BatchID) ) AS s
ON dbo.GetProductHeaderId(s.c1,S.c2,S.c3) <0
WHEN NOT MATCHED BY TARGET THEN
INSERT (Name, c1,c2,c3) VALUES (Name, c2,c2,c3)
OUTPUT INSERTED.iD, s.c1, s.c2, s.c3 INTO @TmpTable;
- Essayez d'ajouter
$action
à votreOUTPUT
et table temporaire. Je pense que c'est déjà ce que vous voulez.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer un
MATCHED
clause qui n'a pas changer quoi que ce soit et met à jour une variable, par exempleSera de retour:
Donc, si vous ajoutez une nouvelle colonne à
@TmpTable
pour stocker l'action que vous pouvez obtenir vos lignes correspondantes à l'aide de:Et vos nouvelles lignes à l'aide de:
ON()