【问题标题】:Updating a table from a table variable从表变量更新表
【发布时间】:2016-12-01 09:39:36
【问题描述】:

我有一个在其中声明一个表的 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”

我确定我错过了一些非常简单的东西,但我无法弄清楚。

【问题讨论】:

  • 你需要JOIN这两个表——@tOptimiser_tagData

标签: sql-server tsql sql-server-2012


【解决方案1】:

您的更新声明应如下所示。您必须在Table variableOptimiser_tagData 之间申请加入。并且您应该将更新语句作为一个整体运行(表变量声明等)

UPDATE Optimiser
    SET Optimiser.value = t.value
    from Optimiser_tagData Optimiser
    join @t t
    on Optimiser.tagName = t.tagName

【讨论】:

  • 就我而言,我必须输入on Optimiser = t.tagName
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多