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

公開日: : 最終更新日:2013/12/11 SQL Server , , , ,

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

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

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • 13 follow us in feedly

関連記事

SQL Server-ストアドプロシジャーのソースを表示する2

過去の投稿「SQL Server-ストアドプロシジャーのソースを表示する1」で示した方法では 1つ

記事を読む

SQL Server-SQLでテーブル仕様書になるものネタを取ってみる

SQLでテーブル仕様書になるものネタを取ってみます。 これを実行すると [crayo

記事を読む

SQLServerのテーブルやカラムにコメントをつける方法

SQLServerでテーブルやカラムにコメントをつける SQLServerで作成したテーブルやカラ

記事を読む

ORDER BYでNULLのカラムを最後に表示

ORDER BYでNULLのカラムを最後に持ってくる SQLで何も考慮せずに「ORDER BY」す

記事を読む

複数のストアドプロシージャ (stored procedure) でローカルテンポラリテーブルを共有する

ローカルテンポラリテーブルを共有する 先日来より悩んでいたSQLServerでの SQL

記事を読む

SQLサーバ

1行のINSERT文で複数のデータを挿入する方法

1行のInsertで複数件のデータ挿入 これまでは1行INSERT文では1行のデータしか挿入できま

記事を読む

SQLでCASE~WHENを使ってみる

SQLでCASE~WHENを使う SQLでCASE~WHENを使うとIF文で分岐して実行文を分ける

記事を読む

SQLServer

SQLServerで引数の順序を考慮せずに呼び出せるストアドプロシジャを作る

引数の順序を考慮せずに呼び出せるストアドプロシジャ ストアドプロシジャを呼び出す際に、引数が多いも

記事を読む

SQLServerでTrue,FalseのようなBoolean型をあつかう

SQLServerでBoolean型を扱う SQLServerには「Boolean」という型は

記事を読む

SQLServerではTRIM関数がありません

SQLServerでは空白を取り除くTRIM関数がない SQLServerではOracleやMyS

記事を読む

再帰SQLで最大再帰数の指定

再帰SQLを実行すると最大再帰数に達してエラー 先日作成した日付を管

SELECTした結果をランダムに並び変える

SQLでSELECTした結果をランダムに並び変えて表示する SQLS

指定された月の日数をSQLで求める

指定された月の日数をSQLで求める SQLServerには該当月

SQLサーバ
連番中で 「歯抜け」の番号を見つけ出すSQL

テーブル内の連番の歯抜け番号を探す よくある処理でテーブルに設定され

SQLで順位を取得するRANK()とDENSE_RANK()

SQLで順位を取得する SQLServerで項目の順位付け関数を利用

→もっと見る



PAGE TOP ↑