gpt4 book ai didi

sql-server - 检测在触发器中更新的记录

转载 作者:行者123 更新时间:2023-12-04 06:49:04 27 4
gpt4 key购买 nike

我有一个带有触发器的 SQL Server 2008 数据库。该触发器定义如下:

CREATE TRIGGER [dbo].[Trigger_Car_Insert] ON [dbo].[Car] FOR INSERT 
AS
UPDATE
[Lot]
SET
[TotalCars]=lotCars.TotalCars
FROM
[Lot] l JOIN (
SELECT
c.[LotID], COUNT(*) as 'TotalCars'
FROM
inserted i JOIN [Car] c ON i.[LotID]=c.[LotID]
WHERE
c.[IsSold]=0
GROUP BY
c.[LotID]
) lotCars ON l.[ID]=lotCars.[LotID]

这适用于插入。但是,当汽车售出时,IsSold 标志会更新为 true。发生这种情况时,我需要一个触发器来更新 Lot 表上的“TotalCars”属性。我知道有一个“插入”和“删除”表来检测刚刚插入/删除的内容。但是,我无法弄清楚更新的等价物。

如何在 SQL Server 2008 上执行此操作?谢谢!

最佳答案

更新触发器中没有“更新表”。更新语句之前的值在“删除”表中,新值在“插入”表中。您可以使用 COLUMNS_UPDATED 检查特定列是否已更新。功能。

这是一个简单的例子:An Introduction to Triggers -- Part II

关于sql-server - 检测在触发器中更新的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3389955/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com