Tengo una tabla de prueba simple como esta:
CREATE TABLE MyTable (x INT);
Dentro de una transacción, trato de agregar una columna y luego insertarla en la columna recién creada:
BEGIN TRANSACTION;
PRINT 'Adding column, ''SupplementalDividends'', to MyTable table.';
ALTER TABLE MyTable
ADD SupplementalDividends DECIMAL(18,6);
PRINT 'Column added successfully....';
PRINT 'Ready to INSERT into MyTable ...';
INSERT INTO MyTable (x, SupplementalDividends)
VALUES (1, 3.2);
PRINT '**** CHANGES COMPLETE -- COMMITTING.';
COMMIT TRANSACTION;
El problema es un mensaje de error cuando ejecuto el código anterior:
Invalid column name 'SupplementalDividends'.
¿Por qué esto está causando un error? Si agrego la columna en un lote diferente, fuera de la transacción, funcionará. Mi problema es que quiero agregar la columna dentro de la transacción. ¿Por qué el error?
schema.ObjectName
. Un buen comienzo para adaptar las buenas prácticas :-)