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:
-
A temporary table is not stored in the database, but is only held in memory until the table is closed.
-
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 takes place on the client. This reduces the load on both the network and the server.
When you need to perform many operations on the data in a specific table in the database, you can load the data into a temporary table while 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, click Object Designer, and then create a new table.
For information about how to create a table, see How to: Create a Table.
-
Click View, and then click C/AL Globals or C/AL Locals, depending on whether your variable is going to 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 lookup button in the Subtype field to select the table to copy.
-
With the cursor still on the line that defines the temporary table, click View, and then click 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.