• 締切済み

列のDEFAULT設定を削除するコマンド

列のDEFAULT設定を削除するコマンドを 教えてください。 ヘルプには、 DEFAULT設定を変更するにはまず削除 とあるのですが削除方法が載っていません。 MSDE2000を使用しています。

みんなの回答

  • 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だと思いますが。

参考URL:
http://www.postgresql.jp/document/pg653doc/j/user/sql-altertable.htm,http://www.techscore.com/tech/sql/03_02.html
nana88
質問者

補足

早速の回答ありがとうございます。 表をそっくり作りかえることもないだろうと 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ではできたと思ったのですが・・・。 以上です。

関連するQ&A