これは以前の質問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
は表示されません)。特に、次のセットは、{123.456、 '$ 12'}を変換しません.SQL Server IsNumeric
によれば両方とも数値ですが、Int
には変換されません。