答案: DB2 9.7以下版本里不支持TRUNCATE命令, 9.7开始支持该命令.
****
最新DB2 9.7开始兼容了很多PL/SQL的语法, 开始支持Truncate命令
Now with DB29.7, use the TRUNCATEcommand:
TRUNCATE<table name>
****
Truncate是SQL中的一个删除数据表内容的语句,用法是:
语法 TRUNCATE TABLE name
参数 name
是要截断的表的名称或要删除其全部行的表的名称。
此操作不写日志,而delete语句是记录日志的。
而DB2不支持truncate语句,但提供另外二种方法来解决上面的问题。
(1) 在建表时加选项not logged initially ,当清空表时通过alter table [name] activate not logged initially with empty table
(2)首先在操作系统上建一个空文件empty.del,接着通过import命令import from empty.del of del replace into [table_name]来清空表中的数据并重组表空间。
方法(2)举个例子如下:
在E盘下新建一个空文件empty.del,然后执行下面语句,便会不记日志删除表 Schema1.Table_A
import from E:\empty.del of del replace into Schema1.Table_A
注:
truncate语法,本人未经测试;
第2种方法经过测试;