Sesuatu seperti ini harus melakukan apa yang Anda butuhkan. Anda akan memiliki INSERT
pernyataan di bawah masukkan nilai yang menunjukkan operasi yang dilakukan ke dalam 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
Jika mau, Anda juga dapat menambahkan kolom dari INSERTED
dan DELETED
ke tabel log Anda juga jika Anda ingin menangkap nilai kolom aktual yang dimasukkan atau diperbarui.