При первой публикации, пожалуйста, дайте мне знать, если на этот вопрос уже был дан ответ!Я попытался поискать, но ничего не смог найти.
В своей хранимой процедуре я выбираю временную таблицу, в то время как я делаю некоторые изменения (я перешел к основной проблеме).
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
В Query Analyzer, если вы выделите и запустите их отдельно, я получу желаемый результат.
ColA ColB ColC ColD ColE
---- ---- ----- ----- -----
a b c d e
Однако, когда я запускаю их все вместе, я получаю следующую ошибку:
(1 row(s) affected)
Msg 207, Level 16, State 1, Line 10
Invalid column name 'colC'.
Похоже, оператор ALTER TABLE пропускается?Я вставлял операторы GO после каждой команды, и код работал в анализаторе запросов.Однако я не могу понять, как повторить это в хранимой процедуре.(Есть ли эквивалент «GO» для s-procs?)
Любая помощь очень ценится!