Kann ich eine benannten Standardeinschränkung in einer Add Spalte Anweisung in SQL Server erstellen?
-
04-10-2019 - |
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?
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)