Changes for 3.30
Changes for 3.20h
- Added the _TableRecovery UDF that returns the data from a table as it existed at a specified point in time
- Added User-configurable prefixes and suffixes for AutoAudit views and UDF's
- Added a parameter to configure the date style to either 113 or 121 in AutoAudit tables
- Added QUOTENAME delimiters around TableName entry in AuditHeader table
- Added LoginName to the SchemaAudit table
- Changed the default behaviour of the pAutoAuditDropAll stored procedure to 0 (don't drop) instead of 1 and added a safeguard confirmation parameter.
- Added the Comment column to the AuditAllExclusions table
Changes for 3.20g
- Modified the logic for logging ModifiedBy and ModifiedDate values when @StrictUserContext = 0 during update and delete operations
- Added an option in pAutoAuditAll to exclude all tables from specified schemas
- Changed the sort order for the _RowHistory UDF from AuditDate,RowVersion to RowVersion,AuditDate
Here is a high level list of the things I have changed between AutoAudit 2.00h and 3.20h ...
- corrects a minor bug found in 3.20e in the _RowHistory UDF when using column names with spaces and another one related to null values.
- AutoAudit has been tested on SQL Server 2005, 2008, 2008R2 and 2012.
- Added the capability for AutoAudit to handle primary keys with up to 5 columns.
- Added the capability for AutoAudit to save changes for a subset of the columns in a table.
- Normalized the Audit table and created the AuditHeader and AuditDetail tables. This change reduces AutoAudit storage requirements by over 70% when the SQL statement is not saved and as much as 90% when it is saved.
- Added schema support so that the Audit tables and objects can be created in whatever schema the user wants.
- Created a _RowHistory view.
- Reworked the _RowHistory table-valued functions to reconstruct the full row-by-row details of the audit events when the Logging level is set to 2 (full logging) for Insert, Update and Delete events.
- Created a table for AutoAudit system Settings.
- Added a table to record the AutoAudit settings for each of the tables that use it. This is used to make it easy to change logging detail levels and rebuild triggers.
- Added a flag to the AutoAudit implementation script that determines if the "With Log" function is included in the raiserror statements or not.
- Created an upgrade script to migrate existing Audit data to the AuditHeader and AuditDetail tables.
- Created a process to move AutoAudit data from the active tables to Archive tables. This process can keep the active tables to a reasonable size and makes it more convenient to partition the archived data as required.
- Implemented Quotename() all over to ensure AutoAudit works with any table and column name.
- Restructured parts of AutoAudit for performance improvement.
- Fixed a few bugs.
- Added a table to identify tables to exclude from the pAutoAuditAll SP.
- Added switches to enable/disable the DDL trigger and the Audit triggers. Read the warning message in the script file notes before disabling Audit triggers.
- The @LogInsert setting (2=details, 1=summary, 0=none) is now available for Update and Delete operations also. Read the warning message in the script file notes before using option 1 or 0 for Update and Delete.
- Adjusted AutoAudit to make it work with case-sensitive database collation.
- Added the option for users to rename the Created, CreatedBy, Modified, ModifiedBy, RowVersion columns at the beginning of this script to whatever names they want.
- Created the pAutoAuditSetTriggerState stored procedure to easily disable and enable AutoAudit triggers for large data imports that do not require auditing to be on.
I have logged over 80 changes. Please refer to the setup script file for all the details. I also added information in the guide section to explain the new features in more details.
Please report any issues to firstname.lastname@example.org