Tôi không chắc lắm, mục tiêu của bạn là gì, tôi nghĩ nó có thể là như thế này. Giả sử chúng ta có một bảng như thế này:
CREATE TABLE Product
(
ID INT PRIMARY KEY,
Name NVARCHAR(100) NOT NULL,
Price DECIMAL(10,2) NOT NULL
);
và một số bảng kiểm tra như sau:
CREATE TABLE ProductAudit
(
AuditID INT IDENTITY PRIMARY KEY,
ProductID INT NOT NULL
OldName NVARCHAR(100) NULL,
OldPrice DECIMAL(10,2) NULL,
NewName NVARCHAR(100) NULL,
NewPrice DECIMAL(10,2) NULL
);
Sau đó, bạn tạo một trình kích hoạt:
CREATE TRIGGER TR_AUDIT
ON Product
FOR INSERT, UPDATE, DELETE
AS
BEGIN
INSERT INTO ProductAudit (ProductID, OldName, OldPrice, NewName, NewPrice)
SELECT
COALESCE(I.ID, D.ID),
D.Name,
D.Price,
I.Name,
I.Price
FROM
INSERTED I FULL OUTER JOIN DELETED D ON I.ID = D.ID;
END
GO
Bạn đã có nó.