J'ai une table de test simple comme celle-ci:
CREATE TABLE MyTable (x INT);
Dans une transaction, j'essaie d'ajouter une colonne, puis d'insérer dans la colonne nouvellement créée:
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;
Le problème est un message d'erreur lorsque j'exécute le code ci-dessus:
Invalid column name 'SupplementalDividends'.
Pourquoi cela provoque-t-il une erreur? Si j'ajoute la colonne dans un lot différent, en dehors de la transaction, cela fonctionnera. Mon problème est que je veux ajouter la colonne dans la transaction. Pourquoi l'erreur?
schema.ObjectName
. Un bon début pour adapter les bonnes pratiques :-)