Here is my existing code - Hope that will help. Thanks in advance for any helpDECLARE @Location INT, @taskJ INT, @@ProjectID INT, @@ErrorCode INT CREATE TABLE #Errortasks (LocationID INT, taskJ INT)SELECT DISTINCT s.Location, s.CPPS_task-- ,j.SiteId,j.JobIDINTO #NewGPMtasks FROM Orders s (NOLOCK) WHERE s.Location > 0--BEGIN TRANSACTIONDECLARE Cur_taskJ2 CURSOR FOR Select Location, taskjFROM #NewGPMtasks --Open cursorOPEN Cur_taskJ2FETCH NEXT FROM Cur_taskJ2 INTO @Location, @taskJWHILE @@FETCH_STATUS = 0BEGIN IF EXISTS (SELECT Product FROM Products WHERE SiteID = @Location and Tasks = @taskJ) BEGIN BEGIN TRANSACTION UPDATE LocationChart SET Numeric1 = Numeric1 + 1 WHERE Location = 1 AND Control = 40 SET @@ErrorCode = @@Error IF @@ErrorCode <> 0 GOTO OnExit --Insert a new Step INSERT INTO OrderSteps (Location, Details, Tasks, CDate) VALUES(@Location, '', @taskJ, getdate()) SET @@ErrorCode = @@Error IF @@ErrorCode <> 0 GOTO OnExit COMMIT TRANSACTION ENDELSEBEGIN BEGIN TRANSACTION INSERT INTO LocationMaster (Location, Description, CDate) VALUES(@Location, '', getdate()) SET @@ErrorCode = @@Error IF @@ErrorCode <> 0 GOTO OnExit INSERT INTO OrderSteps (Location, Details, Tasks, CDate) VALUES(@Location, '', @taskJ, getdate()) SET @@ErrorCode = @@Error IF @@ErrorCode <> 0 GOTO OnExit COMMIT TRANSACTION ENDFETCH NEXT FROM Cur_taskJ2 INTO @Location, @taskJ ENDCLOSE Cur_taskJ2DEALLOCATE Cur_taskJ2OnExit: ROLLBACK TRANSACTION INSERT INTO #Errortasks VALUES (@Location, @taskJ) CLOSE Cur_taskJ2DEALLOCATE Cur_taskJ2