So etwas sollte tun, was Sie brauchen. Sie hätten den INSERT
Anweisungen unten fügen Werte ein, die die durchgeführte Operation in MyLogTable
angeben .
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
Wenn Sie möchten, können Sie auch Spalten aus INSERTED
hinzufügen und DELETED
auch in Ihre Protokolltabelle, wenn Sie die tatsächlichen Spaltenwerte erfassen möchten, die eingefügt oder aktualisiert wurden.