Posso creare un vincolo predefinito denominato in una dichiarazione colonna aggiuntivo in SQL Server?
-
04-10-2019 - |
Domanda
In SQL Server, ho una nuova colonna in una tabella:
ALTER TABLE t_tableName
ADD newColumn NOT NULL
Questo non perché io non specifica NULL senza specificare un vincolo di default. La tabella non dovrebbe avere un vincolo di default.
Per aggirare il problema, ho potuto creare la tabella con il vincolo di default e poi rimuoverlo.
Tuttavia, ci non sembra essere un modo per specificare che il vincolo di default dovrebbe essere chiamato come parte di questa affermazione, quindi il mio unico modo per sbarazzarsi di esso è di avere una stored procedure che guarda in su nel sys.default_constraints tavolo.
Questo è un po 'disordinato / verbose per un'operazione che è probabile che accada molto. Qualcuno ha qualche soluzioni migliori per questo?
Soluzione
Questo dovrebbe funzionare:
ALTER TABLE t_tableName
ADD newColumn VARCHAR(50)
CONSTRAINT YourContraintName DEFAULT '' NOT NULL
Altri suggerimenti
ALTER TABLE t_tableName
ADD newColumn int NOT NULL
CONSTRAINT DF_defaultvalue DEFAULT (1)