我有此表变量声明后跟一个查询:
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定义如下:
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”。
消息208,第16级,状态1,第24行
无效的对象名称“ @CurrentItems”。
实际的问题是什么,我该如何解决?
您已经别名了@CurrentItems,CI所以只需使用CI:
@CurrentItems
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.UId =CU.ItemID
CU
您也不告诉我们什么U,我希望这是一个有效的表。