2010-03-23 9 views

Répondre

3

si phone_number a des caractères alphabétiques ou symbole, il échouera quand CASTING à DECIMAL:

Update table set Test = Convert(varchar(53), Cast(Phone_Number as Decimal)) 
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

Votre question est très vague, mais vous pouvez essayer:

Update YourTable 
    SET Test=CASE 
       WHEN ISNUMERIC(Phone_Number)=1 THEN Convert(varchar(53), Cast(Phone_Number as Decimal)) --this is your code unchanged 
       ELSE Phone_Number 
      END 
... 
+0

Si le UPDATE est pour chaque ligne de la table (le code d'exemple n'a pas de WHERE), alors si un seul numéro de téléphone a un mauvais caractère, l'ensemble de UPDATE échouera. Exécutez 'SELECT * FROM YourTable WHERE ISNUMERIC (Phone_Number) = 0' pour trouver toutes les" mauvaises "lignes. –

Questions connexes