Index: autoaudit 2.00h.sql
===================================================================
--- autoaudit 2.00h.sql	(revision 879)
+++ autoaudit 2.00h.sql	(working copy)
@@ -1599,87 +1599,137 @@
 go --------------------------------------------------------------------
 CREATE PROC pAutoAuditDrop (
    @SchemaName SYSNAME  = 'dbo',
-   @TableName SYSNAME
+   @TableName SYSNAME,
+   @KeepColumns BIT = 0
 ) 
 AS 
 SET NoCount ON
 
 DECLARE 
-   @SQL NVARCHAR(max)
+    @SQL NVARCHAR(max)
 
 -- drop default constraints
 
-If Exists (select * 
-             from sys.objects o 
-               join sys.schemas s on o.schema_id = s.schema_id   
-             where o.name = @TableName + '_Created_df'
-               and s.name = @SchemaName)
-  BEGIN 
-    SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] drop constraint ' + @TableName + '_Created_df'
-    EXEC (@SQL)
-  END
+IF @KeepColumns = 0
+BEGIN
 
+    IF EXISTS (SELECT * 
+               FROM sys.objects o 
+               JOIN sys.schemas s on o.schema_id = s.schema_id   
+               WHERE o.name = @TableName + '_Created_df'
+                 AND s.name = @SchemaName)
+    BEGIN 
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] drop constraint ' + @TableName + '_Created_df'
+        EXEC (@SQL)
+    END
+    
+    IF EXISTS (SELECT * 
+               FROM sys.objects o 
+               JOIN sys.schemas s on o.schema_id = s.schema_id   
+               WHERE o.name = @TableName + '_CreatedBy_df'
+                 AND s.name = @SchemaName)
+    BEGIN 
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] drop constraint ' + @TableName + '_CreatedBy_df'
+        EXEC (@SQL)
+    END
+    
+    IF EXISTS (SELECT * 
+               FROM sys.objects o 
+               JOIN sys.schemas s on o.schema_id = s.schema_id   
+               WHERE o.name = @TableName + '_Modified_df'
+                 AND s.name = @SchemaName)
+    BEGIN 
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] drop constraint ' + @TableName + '_Modified_df'
+        EXEC (@SQL)
+    END
+    
+    IF EXISTS (SELECT * 
+               FROM sys.objects o 
+               JOIN sys.schemas s on o.schema_id = s.schema_id   
+               WHERE o.name = @TableName + '_ModifiedBy_df'
+                 AND s.name = @SchemaName)
+    BEGIN 
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] drop constraint ' + @TableName + '_ModifiedBy_df'
+        EXEC (@SQL)
+    END
+    
+    IF EXISTS (SELECT * 
+               FROM sys.objects o 
+               JOIN sys.schemas s on o.schema_id = s.schema_id   
+               WHERE o.name = @TableName + '_RowVersion_df'
+                 AND s.name = @SchemaName)
+    BEGIN 
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] drop constraint ' + @TableName + '_RowVersion_df'
+        EXEC (@SQL)
+    END
+    
+    -- drop Created column 
+    IF EXISTS (SELECT *
+               FROM sys.tables t
+               JOIN sys.schemas s
+                   ON s.schema_id = t.schema_id
+               JOIN sys.columns c
+                   ON t.object_id = c.object_id
+               WHERE t.name = @TableName AND s.name = @SchemaName AND c.name = 'Created')
+    BEGIN
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] DROP COLUMN Created'
+        EXEC (@SQL)
+    END
+      
+    -- drop CreatedBy column 
+    IF EXISTS (SELECT *
+               FROM sys.tables t
+               JOIN sys.schemas s
+                   ON s.schema_id = t.schema_id
+               JOIN sys.columns c
+                   ON t.object_id = c.object_id
+               WHERE t.name = @TableName AND s.name = @SchemaName AND c.name = 'CreatedBy')
+    BEGIN
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] DROP COLUMN CreatedBy'
+        EXEC (@SQL)
+    END
+    
+    -- drop Modified column 
+    IF EXISTS (SELECT *
+               FROM sys.tables t
+               JOIN sys.schemas s
+                   ON s.schema_id = t.schema_id
+               JOIN sys.columns c
+                   ON t.object_id = c.object_id
+               WHERE t.name = @TableName AND s.name = @SchemaName AND c.name = 'Modified')
+    BEGIN
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] DROP COLUMN Modified'
+        EXEC (@SQL)
+    END
+      
+    -- drop ModifiedBy column 
+    IF EXISTS (SELECT *
+               FROM sys.tables t
+               JOIN sys.schemas s
+                   ON s.schema_id = t.schema_id
+               JOIN sys.columns c
+                   ON t.object_id = c.object_id
+               WHERE t.name = @TableName AND s.name = @SchemaName AND c.name = 'ModifiedBy')
+    BEGIN   
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] DROP COLUMN ModifiedBy'
+        EXEC (@SQL)
+    END
+    
+    -- drop RowVersion column 
+    IF EXISTS (SELECT *
+               FROM sys.tables t
+               JOIN sys.schemas s
+                   ON s.schema_id = t.schema_id
+               JOIN sys.columns c
+                   ON t.object_id = c.object_id
+               WHERE t.name = @TableName AND s.name = @SchemaName AND c.name = 'RowVersion')
+    BEGIN   
+        SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] DROP COLUMN RowVersion'
+        EXEC (@SQL)
+    END
+END
 
-If Exists (select * 
-             from sys.objects o 
-               join sys.schemas s on o.schema_id = s.schema_id   
-             where o.name = @TableName + '_Modified_df'
-               and s.name = @SchemaName)
-  BEGIN 
-    SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] drop constraint ' + @TableName + '_Modified_df'
-    EXEC (@SQL)
-  END
 
-If Exists (select * 
-             from sys.objects o 
-               join sys.schemas s on o.schema_id = s.schema_id   
-             where o.name = @TableName + '_RowVersion_df'
-               and s.name = @SchemaName)
-  BEGIN 
-    SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] drop constraint ' + @TableName + '_RowVersion_df'
-    EXEC (@SQL)
-  END
-
--- drop Created column 
-IF exists (select *
-			  from sys.tables t
-				join sys.schemas s
-				  on s.schema_id = t.schema_id
-				join sys.columns c
-				  on t.object_id = c.object_id
-			  where  t.name = @TableName AND s.name = @SchemaName and c.name = 'Created')
-  BEGIN
-    SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] DROP COLUMN Created'
-    EXEC (@SQL)
-  END
-
--- drop Modified column 
-IF exists( select *
-			  from sys.tables t
-				join sys.schemas s
-				  on s.schema_id = t.schema_id
-				join sys.columns c
-				  on t.object_id = c.object_id
-			  where  t.name = @TableName AND s.name = @SchemaName and c.name = 'Modified')
-  BEGIN   
-    SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] DROP COLUMN Modified'
-    EXEC (@SQL)
-  END
-
--- drop RowVersion column 
-IF exists( select *
-			  from sys.tables t
-				join sys.schemas s
-				  on s.schema_id = t.schema_id
-				join sys.columns c
-				  on t.object_id = c.object_id
-			  where  t.name = @TableName AND s.name = @SchemaName and c.name = 'RowVersion')
-  BEGIN   
-    SET @SQL = 'ALTER TABLE [' + @SchemaName + '].[' + @TableName + '] DROP COLUMN RowVersion'
-    EXEC (@SQL)
-  END
-
-
 -- drop existing insert trigger
 SET @SQL = 'If EXISTS (Select * from sys.objects o join sys.schemas s on o.schema_id = s.schema_id  '
        + ' where s.name = ''' + @SchemaName + ''''
