A temporary table is a temporary variable that holds a table. A temporary table is used as a buffer for table data in your C/AL programs. For more information about C/AL, see Introduction to C/AL.
You can use a temporary table just like you use a database table. The differences between a temporary table and a database table are as follows:
- A temporary table is not stored in the
database, but is only held in memory until the table is
- The write transaction principle that applies
to a database table does not apply to a temporary table. For more
information, see Write Transactions and Recovery.
Advantage of a Temporary Table
The advantage of using a temporary table is that all the interaction with a temporary table occurs on the client. This reduces the load on both the network and the server.
When you want to perform many operations on the data in a specific table in the database, you can load the data into a temporary table when you modify it. Loading the data into a temporary table speeds up the process because all the operations are performed locally on the client.
Defining and Using a Temporary Table
You must define the temporary table before you can use it in your C/AL code. The variable that holds a temporary table is defined just like any other global or local variable.
To define a temporary table
On the Tools menu, choose Object Designer, and then create a new table.
For information about how to create a table, see How to: Create a Table.
Choose View, and then choose C/AL Globals or C/AL Locals, depending on whether your variable will be global or local.
If you choose C/AL Globals, the C/AL Globals window appears.
Enter a name for the temporary table variable, and enter or select Record as the data type. Use the up arrow in the Subtype field to select the table to copy.
With the cursor still on the line that defines the temporary table, choose View, and then choose Properties (Shift+F4) to display the Properties window.
Change the value of the Temporary property to Yes.
After you have created a temporary table, you can use it in your C/AL code. You can apply filters and perform searches just as you can with a database table.