修改表添加字段,然后错误,而使用它



我正在尝试添加一个字段到表。如果我创建一个表,然后调用一个sp并在sp中添加字段,我不能在where子句

中使用该字段
  1. 同时运行第一部分和第二部分:没有错误
  2. 运行第一部分,然后在sp: error中运行第二部分(完成时不要忘记删除#table)
  3. 运行第一部分,然后第二部分:错误(完成时不要忘记删除#table)

的例子:

/*PART 1*/
select 1 as number
into #table
union all 
select 2 as number
/*******/
/*PART 2*/
ALTER TABLE #table ADD rowNo INT IDENTITY(1,1);
select * from #table
where rowNo between 0 and 10
drop table #table
/********/

我的意思是在存储过程中运行(sql fiddle的新功能):

http://sqlfiddle.com/!3/545ff/1

似乎错误是在代码编译期间抛出的。如果在exec()命令中运行select(或直接引用新列的任何其他查询),它可以工作:

http://sqlfiddle.com/!3/76b8c/1

相关内容

最新更新