0

在输出语句之后包含一条选择语句将销售区域表中区域 1-4 的 CostYTD 设置为 $1000.00。提供显示区域 id、新成本 YTD 和旧成本 YTD 的输出语句,如下所示

TerritoryID     New Cost YTD     Old Cost YTD
------------    ------------     ------------

1               1000.00          0.00

这是我的代码:

USE AdventureWorks2008R2;
UPDATE sales.SalesTerritory
SET CostYTD = 1000.00 
OUTPUT inserted.TerritoryID, deleted.CostYTD, inserted.CostYTD
WHERE TerritoryID=1 and TerritoryID=2 and TerritoryID=3 and TerritoryID=4

但是,当我添加 select 语句时,它告诉我列名无效。我不知道该怎么办。另外我知道 CostYTD 也需要被称为 New cost YTD 和 old 所以我这样做吗?insert.CostYTD = 新成本 YTD?

4

1 回答 1

0

我希望我能解决您的问题:您想从 OUTPUT 子句中获取信息,例如每个已处理行的“deleted.field”或“inserted.field”,以便进一步使用它。好吧,这是一个尝试(没有经过测试):必须将 OUTPUT 放入一个表中,您必须在这样的语句之前首先创建该表

DECLARE @outputtab TABLE(inserted_TerritoryID bigint,deleted_CostYTD money,inserted_CostYTD money)

(确保数据类型匹配)。在语句中,您可以像这样填充该表变量

OUTPUT inserted.TerritoryID,deleted.CostYTD,inserted.CostYTD INTO @outputtab 

(OUTPUT 中的字段顺序必须与@outputtab 的顺序相匹配)。之后,您可以查询该表变量。您还可以构建一个临时表或普通表。

于 2013-10-04T02:41:37.227 回答