Mettre à jour la requête sans mettre à jour tous les loggings

J'ai une requête de mise à jour pour mettre à jour les loggings dans une table, quand je fais une sélection sur les critères à mettre à jour, il montre 715 loggings qui correspondent à la condition mais seulement 15 d'entre eux sont mis à jour. Est-ce que quelqu'un peut m'aider avec ça. J'ai chargé datatables de la feuille Excel dans une table temporaire pour la comparaison.

BEGIN TRAN UPDATE table1 SET English = CASE WHEN English <> t.name THEN t.name else English END FROM #tempdata t LEFT JOIN dbo.Main m ON m.Code= t.[property] LEFT JOIN table1 tbv ON m.filterkey= tbv.filterkey where t.name != tbv.English ROLLBACK TRAN 

La plupart des jointures dupliquent vos données de table1 . Voici le scénario de test pour la réplication:

 SET NOCOUNT ON DECLARE @table1 TABLE(id INT, col INT) DECLARE @table2 TABLE(id INT, rel_id int) INSERT INTO @table1 VALUES(1, NULL),(2, null) INSERT INTO @table2 VALUES(1, 1),(2, 1),(3,2) SELECT * FROM @table1 t1 JOIN @table2 t2 ON t2.rel_id = t1.id SET NOCOUNT OFF UPDATE t1 SET col = t2.id FROM @table1 t1 JOIN @table2 t2 ON t2.rel_id = t1.id 

Cela sélectionne 3, mais ne met à jour que 2 lignes.