我有一个 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
这显然不起作用,我收到此错误:
Must declare the scalar variable "@t"
我确信我错过了一些非常简单的东西,但我不太明白。
最佳答案
您的更新声明应如下所示。您必须在表变量
和Optimiser_tagData
之间应用联接。并且您应该整体运行更新语句(表变量声明等)
UPDATE Optimiser
SET Optimiser.value = t.value
from Optimiser_tagData Optimiser
join @t t
on Optimiser.tagName = t.tagName
关于sql-server - 从表变量更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40907081/