2013-05-02 55 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

相關問題