I need help making the code below run smoother/faster. Do you have any suggestions for making it better?What it does is take a huge database that has changes to records all in a single row and outputs a table with the field that changed and the old value and new value along with the name and date of the user that changed it. Each time a field changes there is a 'Y' placed in a field named CI_[fieldname]. This is just the code for one of 34 columns that can change.I know there must be a better way than I am doing it so any help is appreciated.--CI_ACT_STATUS A change in the action statusIF OBJECT_ID('TempDB..[#Temp1]','U') IS NOT NULL Drop table [#Temp1]SELECT ACT_REF, TRANSACTION_TYPE, PRJVER_ID, HULL, WORKPACKAGE_ACTIVITY, WORKORDER_ACTIVITY, JOB_ACTIVITY, ACT_TYPE, ACTIVITY_TYPE, WORKSTATION, OP, DEPT_ID, SCHEDULERELDATE, ACTUALRELDATE, ACT_PRESETSTARTDATE, ACT_PRESETENDDATE, ACT_ACTSTARTDATE, ACT_ACTENDDATE, ACT_BASELINESTARTDATE, ACT_BASELINEENDDATE, STORE_BUDGET1, STORE_BUDGET2, STORE_BUDGET3, STORE_BUDGET4, STORE_BUDGETPLANNED, ACT_STATUS, 'ACT_STATUS' as Changed_Column, NULL as Old_Value, ACT_STATUS as New_Value, MOD_DATE, MOD_USERINTO #Temp1FROM dbAuditLogMgr.dbo.AuditDataWHERE CI_ACT_STATUS = 'Y'ORDER BY MOD_DATEgoALTER TABLE #Temp1ALTER COLUMN Old_Value varchar(255)goUPDATE #Temp1SET Old_Value = dbAuditLogMgr.dbo.AuditData.ACT_STATUS FROM #Temp1 INNER JOIN dbAuditLogMgr.dbo.AuditData ON #Temp1.ACT_REF = dbAuditLogMgr.dbo.AuditData.ACT_REF AND #Temp1.MOD_DATE <> dbAuditLogMgr.dbo.AuditData.MOD_DATE WHERE dbAuditLogMgr.dbo.AuditData.MOD_DATE = (SELECT MAX(dbAuditLogMgr.dbo.AuditData.MOD_DATE) FROM dbAuditLogMgr.dbo.AuditData WHERE dbAuditLogMgr.dbo.AuditData.MOD_DATE < #Temp1.MOD_DATE AND #Temp1.ACT_REF = dbAuditLogMgr.dbo.AuditData.ACT_REF)goUPDATE #Temp1SET Old_Value = dbAuditLogMgr.dbo.AuditData.ACT_STATUSFROM #Temp1 INNER JOIN dbAuditLogMgr.dbo.AuditDataON #Temp1.ACT_REF = dbAuditLogMgr.dbo.AuditData.ACT_REF WHERE dbAuditLogMgr.dbo.AuditData.MOD_DATE IS NULL AND #Temp1.OLD_Value IS NULL AND dbAuditLogMgr.dbo.AuditData.MOD_DATE IS NULLgoUPDATE #Temp1SET Old_Value = dbAuditLogMgr.dbo.AuditData.ACT_STATUS FROM #Temp1 INNER JOIN dbAuditLogMgr.dbo.AuditDataON #Temp1.ACT_REF = dbAuditLogMgr.dbo.AuditData.ACT_REF WHERE dbAuditLogMgr.dbo.AuditData.MOD_DATE IS NULL AND #Temp1.OLD_Value IS NULL AND dbAuditLogMgr.dbo.AuditData.TRANSACTION_TYPE = 'INSERT'goINSERT INTO dbAuditLogMgr.dbo.condensedDataSELECT * FROM #Temp1go