2011-07-25 17 views
-4

新しい列を追加する場合は、表示エラーを表示するために、alter tableを使用して列を追加または更新します。私は私がNULLではないにNULLのチェックを外した場合、それはショーは、列がNULL値を許可しないだろうSQL Server 2008のテーブルの間に列を挿入する方法

alter table Personal_Details alter columns DOB datetime 

下のコードを使用しています。更新に失敗しました。

フィールドを末尾ではなく列の間に挿入するとします。 pleseは私のバグを修正

、事前に

感謝。

+1

列を変更または追加しようとしていますか?ライブのデータベースに対してこれをやっていますか? – BonyT

+0

あなたは何をしようとしているのかについての手がかりはありません。 テーブルの作成コードを貼り付けることもできます – Mulki

+0

colsの間にフィールドを挿入するとはどういう意味ですか?テーブル定義にフィールドがどのように表示されるかは、あなたにとって決して重要なことではありませんか? – BonyT

答えて

3

テーブル宣言内の列の位置は、NULLまたはNOT NULLとは関係ありません。

あなたは、NOT NULLになりたい(任意の型の)列を追加する場合は、あなたがその列にNULL値を禁止したい、つまり、はテーブルが既にいくつかの行が含まれている、あなたはも提供しなければなりませんいくつかのデフォルト値。たとえば:

ALTER TABLE Personal_Details 
ADD COLUMN DOB datetime NOT NULL DEFAULT (GETDATE()) 

は、そうでなければエンジンは、NOT NULLプロパティに違反することになりますその値としてNULLを、とその列を追加しようとすると、変更は、そのため、元に戻されます。

既存の列のNOT NULLプロパティをオンに設定したい場合は、基本的に同じことが適用されます。しかし、この場合は、値を置き換えるか、それぞれの行を削除することによって、変更前のNULLを明示的に除去する必要があります。

出典:

0

1)URのためではないヌル問題

使用

ALTER TABLE Personal_Details ADD COLUMN DOB datetime NULL 

アップデートに必要な日数とDOB列と列を追加しますカラムにnullがないことを確認してから を使用してカラムを変更してください。最後の問題に行くあなたのコラムについては2)...

    あなたは心配するべきではありません
  1. ...列はdoesntの問題を配置した... uはアクセスの哀れな方法を使用していない限り、順序列の順序によるデータ。列の順序でアクセスを停止する必要があります。
  2. 列の順序が重要な場合は、SQL管理表のデザインオプションを使用して変更できます(表>デザインを右クリックします)列を必要な場所にドラッグします)。
関連する問題