Ich habe eine einfache Testtabelle wie diese:
CREATE TABLE MyTable (x INT);
Innerhalb einer Transaktion versuche ich, eine Spalte hinzuzufügen und dann in die neu erstellte Spalte einzufügen:
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;
Das Problem ist eine Fehlermeldung, wenn ich den obigen Code ausführe:
Invalid column name 'SupplementalDividends'.
Warum verursacht dies einen Fehler? Wenn ich die Spalte außerhalb der Transaktion in einem anderen Stapel hinzufüge, funktioniert dies. Mein Problem ist, dass ich die Spalte innerhalb der Transaktion hinzufügen möchte . Warum der Fehler?
schema.ObjectName
. Ein guter Anfang, um gute Praktiken anzupassen :-)