小编典典

如何在“来自select的日期”查询中使用表变量?

sql

我有此表变量声明后跟一个查询:

DECLARE @CurrentItems TABLE
(
    ItemId uniqueidentifier,
    ItemUnits int
)

UPDATE U SET U.Units = U.Units + [@CurrentItems].ItemUnits
    FROM @CurrentItems CI INNER JOIN U ON U.UId=CI.ItemId;

U定义如下:

CREATE TABLE [dbo].[U] (
    [UId]         UNIQUEIDENTIFIER UNIQUE NOT NULL,
    [Units]       INT DEFAULT ((0)) NOT NULL
);

当我在SQL Management Studio中针对SQL Server 2005 Express运行它时,得到以下信息:

消息208,第16级,状态1,第24行

无效的对象名称“ @CurrentItems”。

实际的问题是什么,我该如何解决?


阅读 229

收藏
2021-05-23

共1个答案

小编典典

您已经别名了@CurrentItemsCI所以只需使用CI

UPDATE U SET U.Units = U.Units + CI.ItemUnits
    FROM @CurrentItems CI INNER JOIN U ON U.UId=CI.ItemId;

还要看看您的查询中是否有类似的内容U.UId =CU.ItemID。什么是CU?您已使用CI为@CurrentItems作了别名,那么CU的目的是什么?如果这是一个错误,只需输入错误即可确保您更改对CUwith的任何引用CI

您也不告诉我们什么U,我希望这是一个有效的表。

2021-05-23