2008-09-19 15 views

Respuesta

10

Se necesitan dos declaraciones. Primero crea la columna con no nulo. A continuación, cambie la restricción no nula a nullable

alter table mytable add mycolumn varchar(10) not null default ('a value') 
alter table mytable alter column mycolumn varchar(10) null 
4

entiendo su pregunta, pero usted está diciendo que para registros futuros, NULL (desconocida, indeterminada o lo que sus semántica es) que es aceptable (pero si se deja fuera de una inserción, habrá un valor predeterminado), pero que para todos los datos existentes, va a seguir adelante y asignarle el valor predeterminado.

Tendría que prestar mucha atención a esta situación y preguntar por qué incluso va a permitir NULL en registros futuros en absoluto, dado que ninguno de los registros históricos lo tendrá, y existe un valor predeterminado para futuros registros.

0

ALTER TABLE {TABLENAME} ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE} [**WITH VALUES]**

CON VALORES se puede utilizar para almacenar el valor por defecto en la nueva columna para cada fila existente en la tabla.

más detalles en el enlace de MSDN. https://msdn.microsoft.com/en-in/library/ms190273.aspx

Cuestiones relacionadas