在数据库中创建的临时表称为全局临时表。声明(而不是在数据库中创建)的临时表称为局部临时表。
所有具有适当权限的用户都可以访问全局临时表。但是,每名用户都具有自己的表实例。只有一名用户可以查看一组给定行。缺省情况下,全局临时表的行将在 COMMIT 时删除。您可以通过在创建临时表时指定 ON COMMIT PRESERVE ROWS 来覆盖此缺省值。
只有一名用户可以查看局部临时表中的任何行。当该用户断开连接时,将会删除该表。当您声明局部临时表时,SAP IQ 会发出一个保存点而不是自动提交事务,就像它对其它任何类型表进行的数据定义操作一样。在创建索引前提交局部临时表中的数据。如果尝试使用未提交的数据创建索引,您可能会看到:“必须提交局部临时表 <表名> 才能够创建索引。”
SAP IQ 不区分版本控制基表(IQ 主存储数据库表)和版本控制全局临时表。因为只有一名用户可以访问任何临时表中的数据,所以永远不会有一个以上针对临时表的写入事务处于打开状态。
您可以启用全局临时表或局部临时表进行 RLV 存储,即使临时表无法利用 RLV 的多用户并发写入功能也是如此。启用临时表进行 RLV 存储可以利用 RLV 存储的低延迟 DML。