「みんな教えて! 選手権!!」開催のお知らせ

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

A 回答 (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/use …

この回答への補足

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

補足日時:2006/01/13 11:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報