Modificar campo en Tabla Ledger y que vuelva a ser NOT NULL
Hola, estoy haciendo pruebas para implementar una tabla Ledger sobre una base ya existente y me estoy encontrando un problema.
Paso 1 | creo una tabla ledger temporal con los mismos campos que la que ya tengo
Paso 2 | copio todos los datos de la antigua a la temporal
Paso 3 | elimino la antigua
Paso 4 | renombro la temporal como la antigua
Hasta aquí todo huele a flores y rosas.
Ahora ponemos el caso que un campo de la ledger es un money not null y quiero cambiarlo a decimal not null, aqui es cuando empiezan los problemas.
Realizo la siguiente acción:
ALTER TABLE dbo.TablaDePrueba ADD ImporteDebe_temp Decimal(19,3) NOT NULL;
ALTER TABLE solo permite agregar columnas que contengan valores NULL, que tengan la definición DEFAULT, que la columna que se agrega sea una columna de identidad o de marca de tiempo, o si ninguna de las condiciones anteriores se cumplen, la tabla debe estar vacía para que se pueda agregar esta columna. La columna 'ImporteDebe_temp' no se puede agregar a la tabla 'TablaDePrueba' no vacía porque no cumple estas condiciones.
Si lo hago de otra forma:
ALTER TABLE dbo.TablaDePrueba ADD ImporteDebe_temp Decimal(19,3) DEFAULT 0 NOT NULL;
Solo se pueden agregar a las tablas de libro de contabilidad las columnas que admiten valores NULL que no tienen el valor predeterminado WITH VALUES.
¿Existe alguna forma de poder realizar una modificación de tipo sin perder la condición NOT NULL en la tabla Ledger?
Gracias