SQL Serverでは、テーブルに新しい列があります。
ALTER TABLE t_tableName
ADD newColumn NOT NULL
デフォルトの制約を指定せずにNOT NULLを指定したため、これは失敗します。テーブルにはデフォルトの制約がありません。
これを回避するには、デフォルトの制約でテーブルを作成してから削除します。
ただし、デフォルトの制約にこのステートメントの一部として名前を付ける必要があることを指定する方法はないようです。したがって、それを取り除く唯一の方法は、sys.default_constraintsでそれを検索するストアドプロシージャを持つことです。テーブル。
これは、多くの場合に発生する可能性のある操作にとっては少し厄介です。誰もこれに対してより良い解決策がありますか?
これは動作するはずです:
ALTER TABLE t_tableName
ADD newColumn VARCHAR(50)
CONSTRAINT YourContraintName DEFAULT '' NOT NULL
ALTER TABLE t_tableName
ADD newColumn int NOT NULL
CONSTRAINT DF_defaultvalue DEFAULT (1)