DelayedInsert property / performance


would you please someone help me to explain, what is Delayedinsert property impact on the database performance and how it works properly?

As I noticed it is mostly used on forms pages with PK (document type, document no, document line). When it is turned off, does it insert record in database when I leave the last control of composed PK? And then the record is modified everytime when I change value of the field and leave control?

When this property is turned on it inserts record in DB after I leave record. Are data held during that time only in memory?

Does DelayedInsert have big negative impact on database performance, when turned off?

thank you for answer

DaggoMan, what version do you use? I can see “…it is mostly used on forms pages…” and we can use the “Delayedinsert property” for mostly “ListPart” and “Worksheet” types of page

I use Nav 2017 and Nav 2018


Delayedinsert is used when you have a key like Document Type, Document no., Line no. and mostly used on Worksheet pages, you turn the Delayedinsert to yes such that only after entering the entire line the record is inserted. DelayedInsert is used in conjunction with Autosplitkey and MutipleLines properties.

Regardless of version delayed insert works exactly the same way.

The purpose of Delayed insert is a matter of two things.

  • By default, new records are inserted when the user leaves the control that shows the primary key in the table. In standard NAV delayed insert is used when we talk about Sales Lines/Purchase Lines and Journal Lines.

  • If a validate is triggered on one of the Primarykey fields, the record would be inserted and when you type something in the second or third field NAV would ask you if you want to rename the record. Obviously you don’t - as you expect that the record is not yet inserted.

Conclusion ALWAYS use DelayedInsert if the primary key consists of more than one field.

Delayed Insert is typically used together with the two other properties MultipleNewLines and AutoSplitKey.

The Purpose of MultipleNewLines is quite nice. It means you can use SQL BulkInserts when creating more than one new line at the same time.

AutosSpiltKey is used for a automatic Line Numbering like 10.000, 20.000 30.000 etc.