2013-10-09 127 views
1

聲明變量如何與一個新的變量如何在SQL UPDATE語句

更新讓我們說我想要做以下

update T 
set T.property1 = (declare @temp varch(20) 
          @temp = 'testing') 
from #temp_table_name T 

這是可能的。我需要更新表格,但新元素是一系列複雜語句的最終結果,並且在處理中間輸出的過程中定義一些變量會更容易。什麼是什麼,我想,因爲它不工作

回答

3

移動所有這些語句組合成scalar valued user-defined function,然後在你的更新語句上面做了正確的語法做這樣的:

update T 
set T.property1 = dbo.myUdf(...) 
from #temp_table_name T 

其中...任何它可能需要從行中完成其工作的參數。

3

是這樣的東西你在找什麼?

DECLARE @temp varchar(20) 
SET @temp = 'testing, or the result of a query maybe?' 

UPDATE T SET T.property1 = @temp 
FROM #temp_table_name T 
WHERE 1 = 1