2012-11-30 36 views
2

我有一個存儲過程中的本地表變量,包含幾列;我需要根據該行的第1列的值更新每行的第2列和子查詢的結果。如何在子查詢中引用臨時表?

喜歡的東西:

UPDATE @mytable 
SET column2 = (SELECT ... FROM ... WHERE something = @mytable.column1) 

但這似乎沒有工作,我得到一個錯誤約@mytable是不確定的。

此查詢的正確語法是什麼?

+0

你在哪兒打電話給這個聲明?從存儲過程裏面? – Kermit

+0

是的。臨時表和語句都在同一個SP中。 – Massimo

+0

@不表示臨時表,它表示類型TABLE的變量。 #用於臨時表(#mytable)。 – HardCode

回答

4

您是否嘗試過使用別名?

UPDATE temp 
SET temp.column2 = (SELECT ... FROM ... WHERE something = temp.column1) 
FROM @mytable temp 
+1

這將需要'更新臨時SET temp.column2 =(SELECT ... FROM ... WHERE something = temp.column1)@mytable temp' –

相關問題