這與之前的問題MSSQL: Change type of a column with numbers from varchar to int類似,但在此情況下,並非所有原始數據都可以成功從varchar轉換爲int。在這些情況下,我希望輸出僅爲NULL
。更改數據庫列類型,同時使用SQL忽略轉換錯誤
例如,varchar列中的傳入值集合將如下所示:{'123', '234', '345', 'A', '456'}
。從varchar轉換爲int後,我希望該列包含值{123, 234, 345, NULL, 456}
。在實踐中,我會有大約99%的成功率。
雖然一般的解決方案是理想的,但我使用SQL Server 2005並需要在Transact SQL中執行更改。
編輯:IsNumeric
建議做橋樑的一部分缺口,但不完整。例如,如果數據集包含數字但不包含整數數據,則IsNumeric
修補程序不起作用(並且看起來不是IsInteger
)。特別是,以下集合不會根據SQL Server IsNumeric
轉換{'123.456','$ 12'},它們都是數字,但不會轉換爲Int
。