4

次のようなデータベース列を作成しています。

Alter table tablename
add column columnname null
add constraint df_columnname default 0

上記の SQL を実行した後、新しい列が null 値を持つテーブルに追加されます。

constraint df_cloumnnameここでは意味がありませんか?

これについて明確にしてください..

4

1 に答える 1

10

列がnullableの場合、デフォルトの制約を追加しても影響はありません。null になる可能性があり、null のままになります。その場合、追加される新しい行DEFAULT CONSTRAINTにのみ適用されます (そして、列の値を明示的に指定していません)。

列がNOT NULLの場合、デフォルトの制約がすぐに適用されます。

SQL Serverを使用している場合(十分に明確に指定していません -クエリ言語ですSQLが、データベース製品ではありません...)、既定の制約を持つ null 許容列が必要で、値を既存の行、次の構文を使用します。

ALTER TABLE dbo.tablename
ADD columnname NULL
  CONSTRAINT df_columnname DEFAULT 0 WITH VALUES

WITH VALUESコマンドに を追加すると、目的の結果が得られるはずです。

于 2013-08-30T10:50:53.973 に答える