- 締切済み
列のDEFAULT設定を削除するコマンド
列のDEFAULT設定を削除するコマンドを 教えてください。 ヘルプには、 DEFAULT設定を変更するにはまず削除 とあるのですが削除方法が載っていません。 MSDE2000を使用しています。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 0KG00
- ベストアンサー率36% (334/913)
回答No.1
CREATE TABLE temp AS SELECT * FROM distributors; DROP TABLE distributors; CREATE TABLE distributors AS SELECT * FROM temp; DROP TABLE temp; SQLServerの場合はわかりませんが、テーブルの再作成という事では。独自で拡張しているなら、alter tableだと思いますが。
補足
早速の回答ありがとうございます。 表をそっくり作りかえることもないだろうと ALTER TABLE でがんばって自力解決いたしました。 postgreSQLでは下記でDEFAULTの追加と削除が可能なのですね。 alter table 表 alter 列 { add | drop } default 規定値 でもSQL Serverでは alter table 表 alter column 列 がDEFAULTをサポートしていないことがわかりました。 (なぜかできると信じていました。すみませんん・・・) そこで、新規定値を持った新列を作成、 値をコピーして旧列を消そうとしました。 しかし下記エラーが出て消えません。 オブジェクト 'DF__XXXXXXXX' は 列 '列名' に依存しています。 ALTER TABLE DROP COLUMN 列名 は失敗しました。1 つ以上のオブジェクトがこの列を参照しています。 DF__XXXXXはつまりDEFAULT定義のことのようで 結局DEFAULTを削除しなくてはならないことがわかりました。 振り出しに戻ったわけです。 で、 alter table 表 drop DF__XXXXXXX としたところ、DEFAULT定義オブジェクトの削除に成功。 その後は列削除もできました。 ただやはり既存列にDEFAULT追加はできないみたいです。 GUIではできたと思ったのですが・・・。 以上です。