【发布时间】:2012-01-22 01:12:34
【问题描述】:
我有这个表变量声明后跟一个查询:
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”。
我已经浏览过this 和this 非常相似的问题,但不知道如何解决问题。
实际问题是什么,我该如何解决?
【问题讨论】:
-
UPDATE U SET U.Units = U.Units + CI.ItemUnits FROM @CurrentItems CI INNER JOIN U ON U.UId=CI.ItemId;有效,我已经试过了
标签: sql sql-server sql-server-2005 tsql table-variable