sha*_*oth 5 sql t-sql sql-server sql-server-2005 table-variable
我有这个表变量声明后跟一个查询:
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;
Run Code Online (Sandbox Code Playgroud)
并U定义如下:
CREATE TABLE [dbo].[U] (
[UId] UNIQUEIDENTIFIER UNIQUE NOT NULL,
[Units] INT DEFAULT ((0)) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
当我在SQL Management Studio中针对SQL Server 2005 Express运行时,我得到以下内容:
Msg 208,Level 16,State 1,Line 24
无效的对象名称'@CurrentItems'.
我已经看过这个和这个非常相似的问题,但无法弄清楚如何解决问题.
什么是实际问题,我该如何解决?
你已经别名了@CurrentItems,CI所以只需使用CI:
UPDATE U SET U.Units = U.Units + CI.ItemUnits
FROM @CurrentItems CI INNER JOIN U ON U.UId=CI.ItemId;
Run Code Online (Sandbox Code Playgroud)
另外看看你的查询,你有类似的东西U.UId = CU.ItemID.什么是CU?你已经用CI为@CurrentItems做了一个别名,那么CU的目的是什么?如果这是一个错误,只是一个错字请确保您更改任何参考CU用CI.
你也不告诉我们是什么U,我希望这是一张有效的表格.