Änderungshistory in Microsoft SQL Datenbanken. Audit Trails mit Triggern. Nachtrag

Kürzlich wurde ich darauf hingewiesen, dass in der vorgestellten Lösung zwar Datenänderungen erfasst werden, jedoch keine Daten die gelöscht oder neu hinzugefügt werden.
Um aber auch NULL- oder Leer-Werte bei Hinzufügen oder Löschen in einem Feld mit in der Audittable auswerten und anzeigen zu können, braucht es nur noch eine explizite Typisierung.

D.h., wenn man in dem dynamischen SQL-Statement den Vergleich in der WHERE-Bedingung noch von NULL-Werten befreit und explizit als NVARCHAR typisiert, werden auch die gelöschten und hinzugefügten Werte in Feldern angezeigt:

SET @SQL = @SQL + 'NOT #Inserted.[' + @ColumnName + '] = #Deleted.[' + @ColumnName + ']

wird dann zu

SET @SQL = @SQL + 'NOT ISNULL(CONVERT(NVARCHAR(255), #Inserted.[' + @ColumnName + ']), '''') = ISNULL(CONVERT(NVARCHAR(255), #Deleted.[' + @ColumnName + ']), '''')'