SQLServerでALTER COLUMNで「列 ‘xxxxx’ に依存しています」とエラーが発生した場合の対応方法です。
ALTER COLUMNで「列 ‘xxxxx’ に依存しています」とエラー
SQLServerでカラムの属性を変更しようとしたら「列 ‘xxxxx’ に依存しています」のようなエラーが発生しました。
実行したALTER TABLEのALTER COLUMN
以下が実行したALTER TABLEのALTER COLUMN。
ALTER TABLE テーブル名 ALTER COLUMN [フィールド名] INT NOT NULL;
エラーの内容
発生したエラーの内容は
オブジェクト 'DF_xxx_xxx' は 列 'xxxxx' に依存しています。 メッセージ 4922、レベル 16、状態 9、サーバー XXXXXX、行 6 ALTER TABLE ALTER COLUMN xxxxx は失敗しました。1 つ以上のオブジェクトがこの列を参照しています。
です。
エラーの対策
どうやら制約を外す必要があるようなので
ALTER TABLE テーブル名 DROP CONSTRAINT DF_xxx_xxx ; --制約削除 ALTER TABLE テーブル名 ALTER COLUMN [フィールド名]INT NOT NULL ; --カラム変更 ALTER TABLE テーブル名 ADD DEFAULT 0 FOR [フィールド名] ; --デフォルト値設定
と3段階で処理をする必要があるようです。