---
title: "DeleteAll"
tags: ["AL","Performance"]
categories: ["Best Practice"]
---

_Created by waldo, Described by waldo_

## Description

When you perform a "DeleteAll" when there is nothing to delete, it will still perform a lock.  When you for example perform a DeleteAll on an empty table, it will result in a table lock.
Therefore it's good practice to always check if the table is empty when performing a DeleteAll.

## Bad code

```al
    EmptyTableWLD.SetRange(Code, 'AJ');
    EmptyTableWLD.DeleteAll(true);
```

## Good code

```al
    EmptyTableWLD.SetRange(Code, 'AJ');
    if not EmptyTableWLD.IsEmpty() then
        EmptyTableWLD.DeleteAll(true);
```
