我有一个SQL查询,在其中声明了一个表。
Declare @t table(tagname nvarchar(50), Value float, timestamp datetime)
然后我在此表中插入一些日期。完成此操作后,我想要从@t
更新另一个表(已创建)。
有些事情:
UPDATE Optimiser_tagData
SET Optimiser_tagData.value = @t.value
where Optimiser_tagData.tagName = @t.tagName
这显然不起作用,我收到了这个错误:
必须声明标量变量" @ t"
我确信我错过了一些非常简单的事情,但我无法理解它。
答案 0 :(得分:8)
您的更新声明应如下所示。您必须在Table variable
和Optimiser_tagData
之间应用加入。你应该整个运行update语句(表变量声明等)
UPDATE Optimiser
SET Optimiser.value = t.value
from Optimiser_tagData Optimiser
join @t t
on Optimiser.tagName = t.tagName