Pour la première fois, merci de me faire savoir si cette question a déjà été répondue! J'ai essayé de chercher, mais je n'ai rien trouvé.Modifier la table dans la procédure stockée
Dans ma procédure stockée, je sélectionne dans une table temporaire pendant que je fais quelques modifications (Ive l'a descendu au problème de base).
SELECT 'a' AS ColA, 'b' AS ColB INTO #tmp
ALTER TABLE #tmp
ADD ColC char(5) NULL,
ColD char(5) NULL,
ColE char(5) NULL
UPDATE #tmp
SET ColC = 'c',
ColD = 'd',
ColE = 'e'
FROM #tmp
SELECT * FROM #tmp
Dans l'Analyseur de requêtes Si vous mettez en surbrillance & les exécuter séparément, dans l'ordre, j'obtenir la sortie désirée.
ColA ColB ColC ColD ColE
---- ---- ----- ----- -----
a b c d e
Cependant, quand je les dirige tous ensemble, je reçois l'erreur suivante:
(1 row(s) affected)
Msg 207, Level 16, State 1, Line 10
Invalid column name 'colC'.
Il ressemble à l'instruction ALTER TABLE est en cours de sauté? J'ai inséré des instructions GO après chaque commande, et le code a fonctionné dans l'analyseur de requête. Cependant, je n'arrive pas à comprendre comment répliquer ceci dans une procédure stockée. (Existe-t-il un équivalent "GO" pour s-procs?)
Toute aide est grandement appréciée!
Je couru contre SQl 2005 et obtenu la sortie désirée sans aucune erreur. – Chandu
@Cybernate - moi aussi! –
oublié de noter, je suis coincé sur SQL 2000 pour cela :( – TheNoodle