質問

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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top