列をクリーンアップする必要があるテーブルがあります。列の数字は次のようになります'123 4567'
。しかし、多くの数字には次のようなアンダースコアが付いています: 123_4567
、これを取り除く必要があります。以下の更新コードでそれを行うことができます。
唯一の問題は、いくつかの列がアンダースコア付きまたはアンダースコアなしで既に存在する場合です。次に、一意のキー違反が発生し、「コード」が終了します。私は知ってIGNORE_DUP_KEY=ON
いますが、私の Update ステートメントでは機能しません。私もTRY/Catch
成功せずにやりました。
をIGNORE_DUP_KEY=ON
機能させることは、私にとって最良の選択肢のようです。次に、重複キーが見つかったときにコードを終了しません。スクリプトを変更して、:2
無視された残りの行に追加することができます。
UPDATE Table
SET [Name] = REPLACE([Name], '_', ' ')
WHERE Substring([Name],4,1)='_'