レコードを含むテーブルTable1があります
Table1
-------------------------------
ID F1
-------------------------------
01 1
02 OK
03 52
04 53
05 Null
------------------------------
ここでは、F1 Varcharのデータ型をDecimal(3,0);に変更します。次に、新しい構造で新しいテーブルを作成します。
varcharを10進数に明示的に変換して、古いテーブルの各レコードを新しいテーブルに挿入したいと思います。だから私はtrycatchブロックでこのコマンドを書いています。エラーが発生した場合、catchブロックでデフォルト値で埋めることができます。ただし、この作業全体は、トランザクションの開始とトランザクションのコミットブロックの間で実行されます。そのため、キャッチブロックでエラーが発生すると、それ以上の作業ができなくなり、エラーが発生します。
現在のトランザクションはコミットできず、ログファイルに書き込む操作をサポートできません。トランザクションをロールバックします。
trycatchブロックでエラーが発生した場合でもこのトランザクションがロールバックされないようにする方法。