2013-05-02 52 views
0

我想添加一个字段到表。如果我创建表格,然后调用sp并在sp中添加字段。我不能在where子句中使用字段改变表添加字段,然后使用它的错误

  1. 运行部分之一,并一起两部分:没有错误
  2. 运行部分之一,那么第二部分内SP:错误(不要做时不要忘记砸#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小提琴):

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

+2

我思考了SP则可能需要增加一个'GO 'ALTER'和'select'语句之间的一行。 – 2013-05-02 22:55:32

+1

你能解释它有什么问题 - 看起来对我有效:http://sqlfiddle.com/#!3/8121d/1 – sgeddes 2013-05-02 23:06:07

+0

我已经更新了这个问题(不知道sql小提琴是否存在它的极好!) – JamesP 2013-05-02 23:20:39

回答

0

似乎代码的编译过程中抛出的错误。如果您运行的选择(或直接引用新列的任何其他查询)执行exec()内的命令,它的工作原理:

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

+0

谢谢我可能最终这样做,但它不完全整齐唯一的其他解决方案是选择到另一个#表和SP然后可以使用COL – JamesP 2013-05-03 21:51:51

相关问题