Ya tengo una tabla que consiste en datos. Necesito modificar la tabla para agregar dos columnas nuevas que no son nulas. ¿Cómo puedo hacer eso sin perder ningún dato existente?Agregue columnas que no admiten nulos a una tabla existente en el servidor SQL?
Esto es lo que he intentado (a través de clic derecho en la tabla y seleccionando Diseño):
Añadido nuevas columnas 'EmpFlag' (bit, null), 'CreatedDate' (fecha y hora, nula)
Columna 'EmpFlag' actualizada en la tabla, para tener algunos valores válidos. (Solo quería trabajar en un campo, así que no actualicé el campo 'CreatedDate')
Ahora, haga clic con el botón derecho en la tabla, diseñe y haga que no sea nula.
Cuando traté de salvar, este mensaje de error apareció:
Almacenamiento de cambios no está permitido. Los cambios que ha realizado requieren que se eliminen y vuelvan a crear las siguientes tablas.
Creo que es una limitación de la herramienta de diseño SSMS. Intente hacerlo con una declaración de SQL: "Alterar la tabla nombre de tabla alterar la columna EmpFlag bit not null". Simplemente ejecute una nueva consulta con esto y cambie el nombre de la tabla con el nombre real. –
Esto tiene poco que ver con los detalles del cambio realizado, sino que refleja el nuevo comportamiento predeterminado en SSMS: para evitar que las personas realicen sin darse cuenta cambios desastrosos en grandes tablas de producción que esencialmente los desconectarán durante el tiempo necesario para copiar los datos y volver a poblar la tabla. Puede desactivar esta opción desde Herramientas> Opciones> Diseñadores> Tabla + Diseñadores de BD> Evitar guardar cambios ... (desmarque esto). Sin embargo, tenga mucho cuidado al hacer estos cambios en las tablas de producción. –