Một cái gì đó như thế này sẽ làm những gì bạn cần. Bạn sẽ có INSERT
câu lệnh bên dưới chèn các giá trị cho biết thao tác được thực hiện vào MyLogTable
.
CREATE TRIGGER [dbo].[TRIG_MyTable]
ON [dbo].[MyTable]
AFTER INSERT, UPDATE
AS
DECLARE @INS int, @DEL int
SELECT @INS = COUNT(*) FROM INSERTED
SELECT @DEL = COUNT(*) FROM DELETED
IF @INS > 0 AND @DEL > 0
BEGIN
-- a record got updated, so log accordingly.
INSERT INTO MyLogTable
SELECT 'New Values', getdate() FROM INSERTED
INSERT INTO MyLogTable
SELECT 'Old Values', getdate() FROM DELETED
END
ELSE
BEGIN
-- a new record was inserted.
INSERT INTO MyLogTable
SELECT 'Insert', getdate() FROM INSERTED
END
Nếu bạn muốn, bạn cũng có thể thêm các cột từ INSERTED
và DELETED
vào bảng nhật ký của bạn cũng như nếu bạn muốn nắm bắt các giá trị cột thực tế đã được chèn hoặc cập nhật.