可能重复:
SQL Server history table - populate through SP or Trigger?
我正在使用此触发器
CREATE TRIGGER [dbo].[Band_Level_trg]
-- ALTER TRIGGER [dbo].[Test_PTA_Table_Update_trg]
ON [dbo].[Band_Level]
INSTEAD OF UPDATE
AS
SET NOCOUNT ON
DECLARE @key int
SET @key = (SELECT band_level_id FROM Inserted)
UPDATE Band_Level
SET band_level_name = band_level_name, description = description
WHERE band_level_id = @key
INSERT INTO dbo.Band_Level
(band_level_name, description)
(SELECT band_level_name,description
FROM Inserted)
但我想在另一个页面上显示历史记录。它在同一页面上显示历史记录
答案 0 :(得分:1)
鉴于您发布的另一个问题:
maintain history through trigger in asp.net (遗憾地说,也是可怕的解释)
我想我想出你想做什么。您希望使用此触发器保留更改的“历史记录”。另外,我认为,你是“在同一页面中显示历史记录”,因为触发器插入到你正在更新的同一个表格上! 历史的目的是在另一张桌子上进行,如果没有,你的历史将成为你想保留历史的桌子的实际数据。
您应该创建具有相同列的另一个表并相应地更改触发器。只需创建一个Band_Level_History表并更改触发器以保存更改。而已。像这样:
而不是:
INSERT INTO dbo.Band_Level
把:
INSERT INTO dbo.Band_Level_History
另外,我会以不同的方式重构触发器。你应该真的阅读这篇文章:
http://www.4guysfromrolla.com/webtech/091901-1.shtml
它很短,请阅读。另外,下次请尝试更好地解释一下,以便每个人都能理解。我知道你可能有语言障碍,但没关系。试着尽力而为,我来自阿根廷,我可以向你保证:如果你一直在尝试,你最终会学习英语。
希望这有帮助