DELETEALL is the high-volume version of the DELETE function. If we have a group of records that we wish to delete, use DELETEALL. The other choice would be a FIND-NEXT loop, in which we delete each record, one at a time. The advantage of DELETEALL is that it allows the developer and the system to optimize code for the volume deletion. Any system optimization will be a function of what SQL statements are generated by the AL compiler.
The syntax for DELETEALL is as follows:
Record.DELETEALL ( [,TriggerControlBoolean] )
The TriggerControlBoolean value, a TRUE or FALSE entry, controls whether the table's OnDelete trigger fires when this DELETE occurs. The default value is FALSE. If the TriggerControlBoolean value is TRUE, then the OnDelete trigger will fire for each record that's deleted. In that case, there is little to no speed advantage for DELETEALL versus the use of a FIND-DELETE-NEXT loop.
In a typical situation, a filter or series of filters would be applied...