Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

CREATE LOCAL TEMPORARY TABLE 语句

可在过程内使用此语句来创建局部临时表,而此表将在过程完成后一直保留到它被显式删除或连接终止。

语法
CREATE LOCAL TEMPORARY TABLE table-name
( { column-definition [ column-constraint ... ] | table-constraint | pctfree }, ... )
[ ON COMMIT { DELETE | PRESERVE } ROWS | NOT TRANSACTIONAL ]
pctfree : PCTFREE percent-free-space
percent-free-space : integer
参数

有关 column-definitioncolumn-constrainttable-constraintpctfree 的定义,请参见CREATE TABLE 语句

  • ON COMMIT 子句   缺省情况下,临时表的行在执行 COMMIT 时删除。可以使用 ON COMMIT 子句在执行 COMMIT 时保留行。

  • NOT TRANSACTIONAL 子句   在某些情况下,NOT TRANSACTIONAL 子句可以提高性能,因为对非事务性临时表执行的操作不会记入回退日志中。例如,在反复调用使用临时表的过程而不对 COMMIT 或 ROLLBACK 进行干预时,NOT TRANSACTIONAL 可能会非常有用。

注释

在过程中,如果要创建一个在过程完成后仍然保留的表,可使用 CREATE LOCAL TEMPORARY TABLE 语句,而不是 DECLARE LOCAL TEMPORARY TABLE 语句。使用 CREATE LOCAL TEMPORARY TABLE 语句创建的局部临时表会一直保留到它被显式删除或连接终止。

利用使用 CREATE LOCAL TEMPORARY TABLE 的 IF 语句创建的局部临时表,在 IF 语句完成后也会继续保留。

权限

无。

副作用

无。

另请参见
标准和兼容性
  • SQL/2003   核心 SQL 之外的 SQL/基础特性。

示例

以下示例将创建一个名为 TempTab 的本地临时表:

CREATE LOCAL TEMPORARY TABLE TempTab ( number INT ) 
ON COMMIT PRESERVE ROWS;