SQL Server 2008: Erreur de conversion de type de données nvarchar à flotteur

Actuellement dépannage d'un problème où l'exécution de la requête SQL:

UPDATE tblBenchmarkData 
SET OriginalValue = DataValue, OriginalUnitID = DataUnitID, 
    DataValue = CAST(DataValue AS float) * 1.335 
WHERE 
    FieldDataSetID = '6956beeb-a1e7-47f2-96db-0044746ad6d5' 
    AND ZEGCodeID IN 
             (SELECT ZEGCodeID FROM tblZEGCode 
              WHERE(ZEGCode = 'C004') OR 
                   (LEFT(ZEGParentCode, 4) = 'C004'))

Résultats dans l'erreur suivante:

Msg 8114, Niveau 16, État 5, Ligne 1
Erreur lors de la conversion de type de données nvarchar à flotteur.

Vraiment la chose étrange est, si je change le UPDATE à SELECT pour inspecter les valeurs récupérées sont des valeurs numériques:

SELECT DataValue 
FROM tblBenchmarkData 
WHERE FieldDataSetID = '6956beeb-a1e7-47f2-96db-0044746ad6d5' 
AND ZEGCodeID IN 
         (SELECT ZEGCodeID 
          FROM tblZEGCode WHERE(ZEGCode = 'C004') OR 
                               (LEFT(ZEGParentCode, 4) = 'C004'))

Voici les résultats:

DataValue
2285260
1205310

Souhaitez utiliser TRY_PARSE ou quelque chose comme cela; cependant, nous sommes en cours d'exécution sur SQL Server 2008, plutôt que de SQL Server 2012. Quelqu'un aurait-il des suggestions? TIA.

OriginalL'auteur user8128167 | 2012-02-03