如何在sql update语句中声明变量

时间:2013-10-09 13:08:11

标签: sql sql-server

如何使用新变量进行更新

让我说我想做以下

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

这是可能的。我需要更新一个表,但新元素是一系列复杂语句的最终结果,在处理中间输出的过程中定义一些变量要容易得多。我正在尝试做什么的正确语法是什么,因为它不起作用

2 个答案:

答案 0 :(得分:3)

将所有这些语句移到scalar valued user-defined function中,然后在更新语句中执行以下操作:

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

其中...是从行中完成工作所需的任何参数。

答案 1 :(得分: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