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)

 

DECLARE LOCAL TEMPORARY TABLE 语句

此语句用于声明局部临时表。

语法
DECLARE 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 子句    使用此子句创建的表不受 COMMIT 或 ROLLBACK 两者中任一个影响。在某些情况下,NOT TRANSACTIONAL 子句可以提高性能,因为对非事务性临时表执行的操作不会导致在回退日志中生成条目。例如,在反复调用使用临时表的过程而不对 COMMIT 或 ROLLBACK 进行干预时,NOT TRANSACTIONAL 可能会非常有用。

注释

DECLARE LOCAL TEMPORARY TABLE 语句用于声明临时表。

当声明的临时表被显式删除或超出范围时,该表的行将被删除。也可以使用 TRUNCATE 或 DELETE 显式删除行。

复合语句中声明的局部临时表存在于复合语句中。(请参见使用复合语句)。否则,在连接断开前,声明的局部临时表会一直存在。

如果想要过程创建一个在过程完成后仍然存在的局部临时表,则改为使用 CREATE LOCAL TEMPORARY TABLE 语句。(请参见CREATE LOCAL TEMPORARY TABLE 语句)。

权限

无。

副作用

无。

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

示例

下面的示例阐释如何在存储过程中声明临时表:

BEGIN
  DECLARE LOCAL TEMPORARY TABLE TempTab ( number INT );
  ...
END