Frage

In SQL Server, ich habe eine neue Spalte in einer Tabelle:

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL

Dies schlägt fehl, weil ich NOT NULL angeben, ohne eine Standardeinschränkung angeben. Die Tabelle soll nicht eine Standardeinschränkung hat.

Um dies zu umgehen, konnte ich die Tabelle mit der Standardeinschränkung erstellen und dann entfernen.

Allerdings ist es keine Art und Weise zu sein scheint, um anzugeben, dass die Standardeinschränkung im Rahmen dieser Erklärung genannt werden sollte, so mein einziger Weg, um es loszuwerden, ist eine gespeicherte Prozedur zu haben, die es in dem nachschlägt sys.default_constraints Tabelle.

Dies ist ein bisschen chaotisch / verbose für eine Operation, die wahrscheinlich viel passieren. Hat jemand dies keine besseren Lösungen für hat?

War es hilfreich?

Lösung

Dies sollte funktionieren:

ALTER TABLE t_tableName 
    ADD newColumn VARCHAR(50)
    CONSTRAINT YourContraintName DEFAULT '' NOT NULL

Andere Tipps

ALTER TABLE t_tableName 
    ADD newColumn int NOT NULL
        CONSTRAINT DF_defaultvalue DEFAULT (1)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top