How to use existing date/time and user/created, user/modified columns names with AutoAudit

AutoAudit by default will add 5 columns to your table, when you turn it on for a table with this command:

EXEC [Audit].[pAutoAudit] @TableName='SEOConfig', @BaseTableDDL=1;
Those columns are: AutoAudit_CreatedDate, AutoAudit_CreatedBy, AutoAudit_ModifiedDate, AutoAudit_ModifiedBy, and AutoAudit_RowVersion.

However, you often have your own columns for the first four: CreatedDate, CreatedBy, ModifiedDate, and ModifiedBy, and
you can tell AutoAudit to reuse them, rather than creating new ones.

I think there is a better way to do this, but this was the quickest solution I found today:

This is related to my previous post on AutoAudit.

USE xxxx;

-- Temporarily point AutoAudit at your existing columns
UPDATE Audit.AuditSettings SET SettingValue = 'seocfg_date_created'  WHERE SettingName = 'CreatedColumnName';
UPDATE Audit.AuditSettings SET SettingValue = 'seocfg_user_created'  WHERE SettingName = 'CreatedByColumnName';
UPDATE Audit.AuditSettings SET SettingValue = 'seocfg_date_modified' WHERE SettingName = 'ModifiedColumnName';
UPDATE Audit.AuditSettings SET SettingValue = 'seocfg_user_modified' WHERE SettingName = 'ModifiedByColumnName';

-- Run AutoAudit - it will find your existing columns and skip adding new ones
EXEC [Audit].[pAutoAudit] @TableName='SEOConfig', @BaseTableDDL=1;

-- Restore defaults for other tables for next time 
UPDATE Audit.AuditSettings SET SettingValue = 'AutoAudit_CreatedDate' WHERE SettingName = 'CreatedColumnName';
UPDATE Audit.AuditSettings SET SettingValue = 'AutoAudit_CreatedBy'   WHERE SettingName = 'CreatedByColumnName';
UPDATE Audit.AuditSettings SET SettingValue = 'AutoAudit_ModifiedDate' WHERE SettingName = 'ModifiedColumnName';
UPDATE Audit.AuditSettings SET SettingValue = 'AutoAudit_ModifiedBy'  WHERE SettingName = 'ModifiedByColumnName';

Leave a Reply