Mit der Version Business Central 2020 wave 2 (17) wurde eine neue Funktionalität ins Leben gerufen – und zwar das Erstellen von Temporären Tabellen. Damit lassen sich unnötige Schemasynchronisationen vermeiden.
Ausgangssituation:
Bisher war es möglich Variablen auf Tabellen, also vom Typ Record, als temporär zu kennzeichnen. Der Vorteil dabei ist, dass die Daten nicht in die Datenbank gespeichert werden, sondern nur im Hauptspeicher (des Servers) gehalten werden. Das ermöglicht eine schnellere Verarbeitung, da sowohl das Netzwerk als auch die Datenbank dabei entlastet werden.
Ein Anwendungsfall ist das Erstellen von Statistiken, da man diese Daten nur zur Laufzeit für den Benutzer berechnet und nach dem Aufruf wieder verwerfen kann.
Ein weiteres breites Einsatzgebiet sind Puffertabellen. Diese werden nur dazu benutzt zur Laufzeit, zum Beispiel während der Ausführung eines Berichtes, befüllt zu werden.

Später kam dann noch die Möglichkeit dazu, Basistabellen von Pages als temporär zu Kennzeichnen. Diese Funktionalität findet hier auch vor allem für das Erstellen von Statistiken Anwendung.

Neu ab Version 17.0:
Nun wurde die Verwendung von temporären Tabellen dahingehend erweitert, dass eine Tabelle sofort beim Anlegen mittels der Eigenschaft TableType als temporär gekennzeichnet werden kann.

Das Verhalten ist dabei das Gleiche wie bei temporären Record-Variablen und temporären Tabellen als Basis von Pages. Der Vorteil hier liegt aber darin, dass das Schema dieser Tabelle nicht mit der Datenbank synchronisiert wird. Auch die Performance bei der BACPAC Erstellung kann dabei verbessert werden.
Die Eigenschaft TableType kann beliebig von Normal auf Temporary und retour gesetzt werden.
Wenn man den TableType von Normal auf Temporary setzt und sich in der Tabelle Daten befinden muss allerdings eine Schemasynchronisation mit der Option ForceSync gemacht werden.
Mein persönliches Fazit
Diese neue Möglichkeit des Arbeitens mit temporären Tabellen bietet nicht nur Vorteile auf der Performance Ebene sondern verhindert auch Probleme und Fehler, falls ein Programmierer eine Puffertabelle in einer Variable verwendet ohne diese auf temporär zu setzen.