Hi, Looking for an archive table to contain all updates for each record. Currently have it working but only displays one of the updates when I made two on the same record. Here is a test case. End result should be two records in the archive table. One for update to Locationid and the other for Location. Any help is appreciated!!
CREATE TABLE [dbo].[employees]( [Id] [int] NOT NULL, [Name] [varchar](50) NULL, [LocationID] int NULL, [Location] [varchar](50) NULL ) ON [PRIMARY] GO
insert into [dbo].[employees] values (1,'Steve',1,'New York')
CREATE TABLE [dbo].[auditemployees]( [Id] [int] NOT NULL, [Name] [varchar](50) NULL, [LocationID] int NULL, [Location] [varchar](50) NULL, [UpdateTime] datetime null, [ActionPerformed] varchar(50) ) ON [PRIMARY] GO
CREATE TRIGGER [dbo].[AfterUPDATETrigger] on [dbo].[employees] FOR UPDATE AS DECLARE @ID INT, @Name VARCHAR(50), @LocationID int, @Location [varchar](50), @ActionPeformed VARCHAR(50); SELECT @ID = ins.ID FROM INSERTED ins; SELECT @Name = ins.Name FROM INSERTED ins; SELECT @LocationID = ins.LocationID FROM INSERTED ins; SELECT @Location = ins.Location FROM INSERTED ins; IF UPDATE(LocationID) BEGIN SET @ActionPeformed = 'U-LocationID' END IF UPDATE(Location) BEGIN SET @ActionPeformed = 'U-Location' END INSERT INTO [auditemployees]( ID ,Name ,LocationID ,Location ,[UpdateTime] ,[ActionPerformed]) VALUES (@ID, @Name, @LocationID, @Location, GETDATE(), @ActionPeformed); GO ALTER TABLE [dbo].[employees] ENABLE TRIGGER [AfterUPDATETrigger] GO
update employees set locationid = '2',location = 'Boston' where id = 1
select * from auditemployees