J'utilise le code suivant pour vérifier si la table temporaire existe et supprimer la table si elle existe avant de la créer à nouveau. Cela fonctionne très bien tant que je ne change pas les colonnes. Si j'ajoute une colonne plus tard, cela donnera une erreur disant "colonne invalide". Veuillez me faire savoir ce que je fais mal.
IF OBJECT_ID('tempdb..#Results') IS NOT NULL
DROP TABLE #Results
CREATE TABLE #Results
(
Company CHAR(3),
StepId TINYINT,
FieldId TINYINT,
)
select company, stepid, fieldid from #Results
--Works fine to this point
IF OBJECT_ID('tempdb..#Results') IS NOT NULL
DROP TABLE #Results
CREATE TABLE #Results
(
Company CHAR(3),
StepId TINYINT,
FieldId TINYINT,
NewColumn NVARCHAR(50)
)
select company, stepid, fieldid, NewColumn from #Results
--Does not work
BEGIN TRANSACTION; CREATE TABLE #Results; ...; DROP TABLE #Results; COMMIT
. Si la transaction réussit, la table sera supprimée. S'il échoue, la table disparaîtra également (car elle a été créée dans la transaction). Dans tous les cas: pas besoin de vérifier si la table existe déjà.