SQLServerでDEFAULT制約付きのカラムの属性を変更する

SQLServerでDEFAULT制約付きのカラムの属性を変更する場合は、一旦付与されている制約を外してから変更しなければエラーになります。

その回避方法を解説します。

スポンサーリンク

DEFAULT制約付きのカラムの属性を変更する

SQLServerでDEFAULT制約付きのカラムの属性を変更する場合は、ちょっとしたテクニックが必要です。

いきなり変更するとエラーになる

SQLServerでDEFAULT制約付きのカラムの属性を変更する場合は、一旦付与されている制約を外してから変更しなければ

のようにエラーになります。

一度設定されている制約を削除して作成する

上記で見たようにすでに制約が存在する場合はエラーになるので一旦削除してから作成します。

ただ、制約の名前は「DF_xxx_xxx」のように自動で生成された文字列でそれを毎回調べて削除して新しい制約を付与するのは面倒なので、ちょっとしたプログラムを作成しました。

実行結果は
元のテーブルの内容

cnt
10
11

属性をDECIMAL(8,2)に変更したテーブルの内容

cnt
10.00
11.00
999999.99
999999.81

属性をINTに戻したテーブルの内容

cnt
10
11
999999
999999

のような感じになります。

タイトルとURLをコピーしました