SQL Server中的触发器是一种特殊的存储过程,它会在对表执行指定的数据操作(如INSERT、UPDATE或DELETE)时自动执行。触发器可以用于强制数据完整性、实现复杂的业务逻辑或记录审计信息。
以下是一个简单的AFTER UPDATE触发器的示例,当Employees
表中的Salary
字段更新时,会自动更新SalaryHistory
表。
-- 创建SalaryHistory表
CREATE TABLE SalaryHistory (
EmployeeID INT,
OldSalary DECIMAL(10, 2),
NewSalary DECIMAL(10, 2),
ChangeDate DATETIME
);
-- 创建AFTER UPDATE触发器
CREATE TRIGGER trg_AfterUpdateSalary
ON Employees
AFTER UPDATE
AS
BEGIN
IF UPDATE(Salary)
BEGIN
INSERT INTO SalaryHistory (EmployeeID, OldSalary, NewSalary, ChangeDate)
SELECT i.EmployeeID, d.Salary, i.Salary, GETDATE()
FROM inserted i
JOIN deleted d ON i.EmployeeID = d.EmployeeID;
END
END;
通过以上信息,您应该对SQL Server表上的更新触发器有了全面的了解,并能够解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云