从表变量更新表

Sil*_*bob 4 t-sql sql-server sql-server-2012

我有一个SQL查询,在其中声明一个表.

Declare @t table(tagname nvarchar(50), Value float, timestamp datetime)
Run Code Online (Sandbox Code Playgroud)

然后我在这个表中插入一些日期.完成后,我想更新另一个表(已创建)@t.

有点像:

UPDATE Optimiser_tagData
SET Optimiser_tagData.value = @t.value
where Optimiser_tagData.tagName = @t.tagName
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,我得到这个错误:

必须声明标量变量"@t"

我相信我很容易错过一些东西,但我无法弄明白.

Tha*_*ddy 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
Run Code Online (Sandbox Code Playgroud)