SQL Server触发器是一种特殊的存储过程,它在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以用于强制数据完整性、实现复杂的业务逻辑或记录审计信息。
以下是一个简单的AFTER INSERT触发器的示例,当在Employees
表中插入新记录时,自动在AuditLog
表中记录该操作。
-- 创建AuditLog表
CREATE TABLE AuditLog (
LogID INT IDENTITY(1,1) PRIMARY KEY,
TableName NVARCHAR(100),
Action NVARCHAR(10),
ActionDate DATETIME,
UserName NVARCHAR(100)
);
-- 创建Employees表
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50)
);
-- 创建AFTER INSERT触发器
CREATE TRIGGER trg_AfterInsert_Employees
ON Employees
AFTER INSERT
AS
BEGIN
DECLARE @UserName NVARCHAR(100) = SYSTEM_USER;
INSERT INTO AuditLog (TableName, Action, ActionDate, UserName)
VALUES ('Employees', 'INSERT', GETDATE(), @UserName);
END;
IF UPDATE(column)
或IF DELETE()
等条件来避免递归调用。希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云