BEGIN TRANSACTION DELETE FROM ProgramHdr WHERE ControlId = @ControlId IF @@ERROR <> 0 BEGIN SET @OriginalError = @@ERROR RAISERROR ('Delete Error: ProgramHdr table. Error: %o.', 16, 1, @@ERROR) ROLLBACK TRANSACTION RETURN @OriginalError END DELETE FROM ProgramDtl WHERE ControlId = @ControlId IF @@ERROR <> 0 BEGIN SET @OriginalError = @@ERROR RAISERROR ('Delete Error: ProgramDtl table. Error: %o.', 16, 1, @@ERROR) ROLLBACK TRANSACTION RETURN @OriginalError END -- At this point all rows should be deleted and it is safe to commit the transaction COMMIT TRANSACTIONHope this helps