SQL Serverのadd列ステートメントに名前付きデフォルト制約を作成できますか?
-
04-10-2019 - |
質問
SQL Serverには、テーブルに新しい列があります。
ALTER TABLE t_tableName
ADD newColumn NOT NULL
これは、デフォルトの制約を指定せずに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)
所属していません StackOverflow