我这里有一个问题....请帮助我。
我有一个名为BufferedOutputStream
的表,我创建了一个这样的存储过程:
Master_BoxStock
之后我想取结果,再次更新它:
BEGIN
UPDATE Master_BoxStock
SET currentQty = currentQty - @insertQty
WHERE boxName = @newBoxName
END
我该怎么做?
答案 0 :(得分:1)
根据语法我会说你使用的是SQL Server。
如果我是对的,你可以使用OUTPUT
子句:
DECLARE @Output as table
(
currentQty int -- (I'm guessing the data type here....)
)
UPDATE Master_BoxStock
SET currentQty = currentQty - @insertQty
OUTPUT Inserted.currentQty INTO @Output
WHERE boxName = @newBoxName
UPDATE m
SET currentQty = o.currentQty
FROM Master_BoxStock m
CROSS JOIN @Output o
WHERE warehouseName = 'Display'
注意:强>
我使用了交叉连接,假设您的第一次更新仅影响一行。如果不是这种情况,您将在表变量中获得多行,并且必须将行变量添加到表变量中,以便您知道要选择哪一行。