SQLUSA

Microsoft SQL Server 2005 Best Practices

How to architect a trigger on column update?

 

Execute the following script in Query Editor to create a trigger which fires when Salary or SSN is updated. The trigger creates two (2) audit trail entries: previous data and new data(replacing data):


USE Payroll
GO
CREATE TRIGGER trgEmployeeUpdate
ON Employee
AFTER UPDATE AS

IF (UPDATE(Salary) or UPDATE(SSN))
BEGIN
INSERT INTO CorpSecurityEmployeeHistory
(auditlogtype,
auditEmployeeDeptID,
auditEmployeeID,
auditEmployeeSalary,
auditEmployeeSSN,
auditUpdatedBy)
SELECT 'PREVIOUSDATA',
DeptID,
EmployeeID,
Salary,
SSN,
USER_NAME()
FROM DELETED

INSERT INTO CorpSecurityEmployeeHistory
(auditlogtype,
auditEmployeeDeptID,
auditEmployeeID,
auditEmployeeSalary,
auditEmployeeSSN,
auditUpdatedBy)
SELECT 'NEWDATA',
DeptID,
EmployeeID,
Salary,
SSN,
USER_NAME()
FROM INSERTED
END;
GO


 

SQLUSA - The Best SQL Server 2005 Training in the World
 
 
SQLUSA.com Home Page