SQL Server

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

2013/06/05

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

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

スポンサーリンク

-SQL Server
-, , , ,

Copyright© ソフトウェア開発日記 , 2019 All Rights Reserved.