1.0 KiB
1.0 KiB
http://snipplr.com/view/2595/ https://stackoverflow.com/questions/25568526/sql-server-after-update-trigger#29052016
USE [RPS]
GO
/****** Object: Trigger [dbo].[Person_LastModifiedDate] Script Date: 15/11/2016 15:54:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Person_LastModifiedDate] ON [dbo].[Person]
FOR UPDATE
AS
--- update lastmodified field
UPDATE Person SET Person.LastModified = getdate()
FROM Person INNER JOIN Inserted ON Person.Uid = Inserted.Uid
--- insert into rps_person_history
DECLARE @id int
DECLARE @result nvarchar(MAX)
DECLARE mycursor CURSOR FOR
SELECT UID FROM inserted
OPEN mycursor
FETCH NEXT FROM mycursor INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN
SET @result = (SELECT * FROM PERSON WHERE UID = @id FOR XML PATH('Person'))
INSERT INTO [RPS].[dbo].[RPS_Person_History] ([UID],[Action],[UpdatedTable],[Data]) VALUES (@id, 'Update','Person', @result)
FETCH NEXT FROM mycursor INTO @id
END
CLOSE mycursor
DEALLOCATE mycursor