【发布时间】:2013-12-24 06:28:52
【问题描述】:
我想要达到的目标:
当有人使用(RegNum、VinNumber、CarMakeID 等)更新 Car 表时,我需要将其放入审计表中。
在下面的示例中,我选择了 CarID = 1 和 ChangeItem = 1(我希望代码使用案例的第一部分)。
如果我要选择 ChangeItem2,我希望它更新 Car Table 中的 VinNumber,并将 deleted.VinNumber 和 Inserted.VinNumber 插入到审计表中。
DECLARE @CarID INT
DECLARE @ChangedItem INT
DECLARE @Input VARCHAR(50)
SET @CarID = 1
SET @ChangedItem = 1
SET @Input = 'LR44 GH345'
UPDATE CAR
(
CASE
WHEN @ChangedItem = 1 THEN
SET RegNum = @Input
OUTPUT @CarID, @ChangedItem, deleted.RegNum, inserted.RegNum INTO CarAudit (CarID, CarAuditObjectID, OldValue ,NewValue)
WHERE CarID = @CarID
WHEN @ChangedItem = 2 THEN
SET VinNumber = @input
OUTPUT @CarID, @ChangedItem, deleted.RegNum, inserted.RegNum INTO CarAudit (CarID, CarAuditObjectID, OldValue ,NewValue)
WHERE CarID = @CarID
END
)
如果有人有更好的方法完全做到这一点,请分享,我并不拘泥于这种设计。
非常感谢您的帮助。
杰。
【问题讨论】: