我有一个Products
表,其中的列为QtySold_Day
和QtySold_Yesterday
,这两个列分别包含今天和昨天的产品销售量信息。
我想创建一个触发器,每当尝试更新QtySold_Day
列时,它会将QtySold_Day
列中的每个值移动到QtySold_Yesterday
。
这是我已经有的
create or alter trigger UpdateQuantity
on Products
instead of update
as
declare @x int
set nocount on
while (@x < @@ROWCOUNT)
begin
update Products
set QtySold_Day = QtySold_Yesterday
where (ProductID = @x)
end
我想知道我怎样才能完成触发器,使其按预期工作。
1条答案
按热度按时间yfjy0ee71#
Inserted
的伪表,该表包含更新的新详细信息。因此,您可以一次性更新所有相关记录。1.正如评论所说,如果记录被多次更新,你可能需要一种方法来避免复制值--所以我添加了一个检查来确保它只发生一次。这可能不是你想要的行为,所以如果你澄清的话,我们可以调整它。
1.你真的想要一个
INSTEAD OF
触发器吗?因为它将捕获对这个表的所有更新,并且在大多数情况下什么也不做。