好的,以下是對 T-SQL 觸發器(TRIGGER)的簡單介紹:
觸發器是一種特殊的存儲程序,當特定的數據庫事件發生時(如插入、更新或刪除操作),會自動執行。觸發器通常用於強制數據完整性、進行複雜的數據校驗,或自動化某些數據庫操作。
CREATE TRIGGER trigger_name
ON table_name
AFTER | INSTEAD OF INSERT, UPDATE, DELETE
AS
BEGIN
-- 觸發器執行的 T-SQL 語句
END;
AFTER 觸發器:在 Employees
表上創建一個 AFTER INSERT 觸發器,用於插入記錄到 Audit
表中。
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
EmployeeName NVARCHAR(50)
);
CREATE TABLE Audit (
AuditID INT IDENTITY PRIMARY KEY,
AuditAction NVARCHAR(50),
AuditDate DATETIME
);
CREATE TRIGGER trgAfterInsert
ON Employees
AFTER INSERT
AS
BEGIN
INSERT INTO Audit (AuditAction, AuditDate)
VALUES ('INSERT', GETDATE());
END;
INSTEAD OF 觸發器:在 Employees
表上創建一個 INSTEAD OF DELETE 觸發器,用於防止刪除操作。
CREATE TRIGGER trgInsteadOfDelete
ON Employees
INSTEAD OF DELETE
AS
BEGIN
PRINT 'DELETE operation is not allowed.';
END;
當在 Employees
表上執行插入或刪除操作時,觸發器將自動執行。
插入操作:
INSERT INTO Employees (EmployeeID, EmployeeName)
VALUES (1, 'John Doe');
這將觸發 trgAfterInsert
,並在 Audit
表中插入一條記錄。