Ich arbeite an einer Webanwendung, die CRUD-Vorgänge an einer Tabelle in einer SQL Server-Datenbank ausführt. In der Anwendung, die diese Vorgänge ausführt, wird ein Benutzer protokolliert.Auslöser für Audit-Tabelle löschen
(By the way, ich Entity Framework)
Lasst uns sagen Tisch
MyTable
- MyTableId
- SomeColumn
- LastModifiedUserId
- LastModifiedDate ist
Und ich habe eine eine Audit-Tabelle wie
MyTableHistory
- MyTableHistoryId
- MyTableId
- SomeColumn
- Action --ins/upd/del
- ActionUserId
- ActioDate
Und ich bin mit Trigger-Daten auf die Audit-Tabelle einzufügen.
Einfügungen und Aktualisierungen sind einfach, indem Sie die Tabellen Eingefügt und Aktualisiert konsultieren, um die Benutzer-ID zu finden, die den Datensatz geändert hat.
Aber was ist mit Löschungen? Irgendeine Idee, wie ich diese Info bekommen könnte?
gibt es die 'INSERTED' Pseudo-Tabelle, wie Sie gesagt haben, aber keine' UPDATED' ein. Es gibt auch die "DELETED" Pseudo-Tabelle – Lamak
Aber DELETED wird einfach die LastModifiedUserId haben, die den Datensatz zuletzt aktualisiert hat, nicht die, die den Datensatz gelöscht hat. Das ist der, den ich will – DJPB
'suser_sname()' ist der Name des Kontos, die die Abfrage ausführen. –