【发布时间】:2011-07-29 12:11:15
【问题描述】:
第一次发帖,如果这个问题已经回答,请告诉我!我试着四处寻找,但找不到任何东西。
在我的存储过程中,我在进行一些修改时选择了一个临时表(我已将其简化为基本问题)。
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
在查询分析器中,如果您分别突出显示并运行它们,我会按顺序获得所需的输出。
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 语句,代码在查询分析器中工作。但是,我无法弄清楚如何在存储过程中复制它。 (s-procs 是否有“GO”等效项?)
非常感谢任何帮助!
【问题讨论】:
-
我在 SQl 2005 上运行它并没有任何错误地获得了所需的输出。
-
忘了注意,我为此坚持使用 SQL 2000 :(
标签: tsql stored-procedures sql-server-2000 alter-table