ALTER TABLE DROP COLUMN を使用してNOT NULL の列を削除したい
- 題名: ALTER TABLE DROP COLUMN を使用してNOT NULL の列を削除したい
- 著者: FutoNeko
- 日時: 2010/01/07 13:25:55
- ID: 26197
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: ALTER TABLE DROP COLUMN を使用してNOT NULL の列を削除したい
- 著者: FutoNeko
- 日時: 2010/01/07 15:54:34
- ID: 26198
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: ALTER TABLE DROP COLUMN を使用してNOT NULL の列を削除したい
- 著者: 魔界の仮面弁士
- 日時: 2010/01/07 15:55:05
- ID: 26199
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: ALTER TABLE DROP COLUMN を使用してNOT NULL の列を削除したい
- 著者: FutoNeko
- 日時: 2010/01/07 16:20:42
- ID: 26200
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: ALTER TABLE DROP COLUMN を使用してNOT NULL の列を削除したい
- 著者: 魔界の仮面弁士
- 日時: 2010/01/07 21:42:25
- ID: 26204
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[その他]
こんにちは。
DBの列修正などを行っております。
環境はSQL Server 2005です。
やりたいことは
・ このSQLを流せば、NULL許容しない列が追加できる。
・ 別のSQLを流せば、その列が削除できる。
この二つのSQL文を作成したいのです。
NULL許容する場合の列ならうまく動いています。
UsersテーブルにIDという列を追加するために、このようなSQLを発行しました。
ALTER TABLE Users ADD ID nvarchar(40) NULL
そして、削除するために
ALTER TABLE Users DROP COLUMN ID
このコマンドは、どちらもうまくいきます。
ですが、NULL値を許容しない列の場合うまくいきません。
ALTER TABLE Users ADD ID nvarchar(40) NOT NULL DEFAULT 0
このコマンドでNULL値許容しない列は作れるのですが
ALTER TABLE Users DROP COLUMN ID
このコマンドを行うと
> メッセージ 5074、レベル 16、状態 1、行 1
> オブジェクト 'DF__Users__ID__xxxxxxxx' は 列 'ID' に依存しています。
> メッセージ 4922、レベル 16、状態 9、行 1
> ALTER TABLE DROP COLUMN ID は失敗しました。1 つ以上のオブジェクトがこの列を参照しています。
このようなメッセージが表示されます。
xxxxxxxxで示した部分は、数値と英語の意味不明な羅列です。
NULLを許容しない列を作成すると、
"制約"が付属して、その制約のために削除もできなくなるようなのですが
回避方法はないでしょうか?
ALTER TABLE Users DROP COLUMN ID の前に
この制約を削除するSQL文が書ければいいのですが
xxxxxxxxの部分が特定できないため、
手動でSQLを作るしかないので困っています。
よろしくお願いします。