Modificar campo en Tabla Ledger y que vuelva a ser NOT NULL

SrTemas 0 Puntos de reputación
2024-03-08T11:37:39.28+00:00

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

SQL Server
SQL Server
Familia de sistemas de análisis y administración de bases de datos relacionales de Microsoft para soluciones de comercio electrónico, línea de negocio y almacenamiento de datos.
56 preguntas
0 comentarios No hay comentarios
{count} votos