¿Puedo crear una restricción predeterminada con nombre en un comunicado la columna complemento en SQL Server?
-
04-10-2019 - |
Pregunta
En SQL Server, tengo una nueva columna en una tabla:
ALTER TABLE t_tableName
ADD newColumn NOT NULL
Esto falla porque no se especifica NULL sin especificar una restricción predeterminada. La tabla no debe tener una restricción predeterminada.
Para evitar esto, yo podría crear la tabla con la restricción predeterminada y luego eliminarlo.
Sin embargo, no parece haber ninguna manera de especificar que la restricción predeterminada debe ser nombrado como parte de esta declaración, por lo que mi única manera de deshacerse de él es tener un procedimiento almacenado que se ve arriba en el sys.default_constraints mesa.
Este es un desordenado bit / detallado para una operación que es probable que suceda mucho. ¿Alguien tiene alguna solución mejor para esto?
Solución
Esto debería funcionar:
ALTER TABLE t_tableName
ADD newColumn VARCHAR(50)
CONSTRAINT YourContraintName DEFAULT '' NOT NULL
Otros consejos
ALTER TABLE t_tableName
ADD newColumn int NOT NULL
CONSTRAINT DF_defaultvalue DEFAULT (1)