ON COMMIT-Klausel
Standardmäßig werden die Zeilen einer temporären Tabelle bei COMMIT gelöscht. Sie können die ON COMMIT-Klausel benutzen,
um die Zeilen bei COMMIT zu erhalten.
NOT TRANSACTIONAL-Klausel
Eine mit dieser Klausel erstellte Tabelle wird weder durch COMMIT noch durch ROLLBACK verändert. Die NOT TRANSACTIONAL-Klausel
bietet Performanceverbesserungen unter bestimmten Umständen, da Vorgänge in nicht-transaktionalen temporären Tabellen keine
Einträge im Rollback-Log bewirken. NOT TRANSACTIONAL kann z.B. sinnvoll sein, wenn Prozeduren, die die temporäre Tabelle verwenden,
ohne dazwischen liegende COMMITs oder ROLLBACKs wiederholt aufgerufen werden.
Bei einer lokalen temporären Tabelle können Sie nicht mit der column-constraint REFERENCES oder der FOREIGN KEY-Tabellen-Integritätsregel arbeiten.
Die DECLARE LOCAL TEMPORARY TABLE-Anweisung deklariert eine temporäre Tabelle.
Tabellen, die mit DECLARE LOCAL TEMPORARY TABLE erstellt wurden, erscheinen nicht in der SYSTABLE-Ansicht des Systemkatalogs.
Die Zeilen einer deklarierten temporären Tabelle werden gelöscht, wenn die Tabelle explizit gelöscht wird oder den Bereich
überschreitet. Sie können Zeilen auch explizit mit TRUNCATE oder DELETE löschen.
Deklarierte lokale temporäre Tabellen in zusammengesetzten Anweisungen bestehen innerhalb der zusammengesetzten Anweisung
Sonst existiert die deklarierte lokale temporäre Tabelle bis zum Ende der Verbindung.
Zwei lokale temporäre Tabellen in demselben Geltungsbereich können nicht den gleichen Namen haben. Wenn Sie eine temporäre
Tabelle erstellen, die den gleichen Namen hat wie eine Basistabelle, wird die Basistabelle innerhalb der Verbindung erst sichtbar,
wenn der Geltungsbereich der lokalen temporären Tabelle endet. Eine Verbindung kann keine Basistabelle mit dem Namen einer
vorhandenen temporären Tabelle erstellen.
Wenn eine Prozedur eine lokale temporäre Tabelle erstellen soll, die erhalten bleibt, nachdem die Prozedur abgeschlossen ist,
verwenden Sie die CREATE LOCAL TEMPORARY TABLE-Anweisung.
SQL/2008
DECLARE LOCAL TEMPORARY TABLE ist Teil der optionalen Sprachenfunktion F531 des SQL/2008-Standards. Die Klauseln PCTFREE
und NOT TRANSACTIONAL sind Erweiterungen des Herstellers. Die in der Anweisung festgelegten Definitionen für Spalten und Integritätsregeln
können ebenfalls Syntax enthalten, die eine Erweiterung des Herstellers darstellt. Im SQL/2008-Standard ist festgelegt, dass
mit der DECLARE LOCAL TEMPORARY TABLE-Anweisung erstellte Tabellen im Systemkatalog erscheinen. Dies ist bei SQL Anywhere
nicht der Fall.
Transact-SQL
DECLARE LOCAL TEMPORARY TABLE wird von Adaptive Server Enterprise nicht unterstützt. In Sybase Adaptive Server Enterprise
wird eine temporäre Tabelle erstellt unter Verwendung der CREATE TABLE-Anweisung mit einem Tabellennamen, der mit dem Sonderzeichen
# beginnt.