建一个跟源表一样的表,记录源表所有操作信息。
ALTER trigger [dbo].[test_Trg] on [dbo].[test]
for insert,update,delete
AS
If not exists(Select 1 from deleted)
INSERT INTO test_Trg SELECT *, 'INSERT', getdate(), substring(SUSER_NAME(),1,50) FROM inserted;
If exists(select 1 from inserted) and exists(select 1 from deleted)
INSERT INTO test_Trg SELECT *, 'UPDATE', getdate(),substring(SUSER_NAME(),1,50) FROM inserted;
If not exists(select 1 from inserted)
INSERT INTO test_Trg SELECT *, 'DELETE', getdate(), substring(SUSER_NAME(),1,50) FROM deleted;
本文介绍了一种使用SQL触发器来记录表中插入、更新和删除操作的方法。通过创建一个与源表结构相同的表,并定义触发器,在源表发生变动时,将相关操作类型、时间及操作者等信息自动记录到新表中。
2118

被折叠的 条评论
为什么被折叠?



