For the guys that read my blog and are interested in Navision programming, I want to talk a bit about a great Navision's feature: the temporary tables.
A Temporary Table is created by C/SIDE when a record variable is created by setting its Temporary property to Yes.
It is created with the same exact structure of the real table that is in the subtype property of the record variable. It is, however, completely empty (no data). This type of table can be used as a temporary workspace to insert records, manipulate them and then either put them into a real table or allow them to disappear. No data in a Temporary Table will ever be stored on the server (and to save records that are in a Temporary Table to the server, you must copy them to another record variable that is not tied to a temporary table).
As you can see the figure below, two record that points to the Customer table are created. The first record points to the real Customer table in the database (with all its records), and the second record points to a temporary table (with the same structure as the Customer table but empty).

What it's important to remember is that a temporary table use the system memory to store its data, so it's extremely resource consuming. If you have a table with lots of data, the system memory can become full and the system could start to swap on the disk (with poor performances). When the free disk space become not enough to the swapping system, Navision could show you some strange errors (like "unable to open floppy", unable to write file" etc.).
So remember... temporary tables are extremely useful and with lots of advantages to use, but they must be controlled and used with intelligence (not store too much data on them) or all their advantages can quickly become disadvantages on system's performances.