2010-03-23 86 views

回答

3

如果PHONE_NUMBER有任何字母或符號字符它澆鑄於DECIMAL時它將會失敗:

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

你的問題很模糊,但你可以嘗試:

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

如果UPDATE是針對表中的每一行(示例代碼沒有WHERE),那麼如果只有一個'Phone_Number'具有不良字符,則整個UPDATE將失敗。運行'SELECT * FROM YourTable WHERE ISNUMERIC(Phone_Number)= 0'來查找所有「壞」行。 – 2010-03-23 17:25:48

相關問題