DB2 V9.7 for Linux, UNIX, and Windows

删除表空间

当删除表空间时,也会删除该表空间中的所有数据,释放容器,除去目录条目,并导致该表空间中定义的所有对象都被删除或标记为无效。

关于此任务

可以通过删除表空间来复用空表空间中的容器,但是,在试图复用这些容器之前,必须落实该 DROP TABLESPACE 语句。

注: 如果不删除与某个表空间相关联的所有表空间,那么不能删除该表空间。例如,如果您在一个表空间中创建了表并在另一个表空间中创建了其索引,那么必须在一个 DROP TABLESPACE 命令中同时删除索引和数据表空间。
删除用户表空间

可删除一个包含所有表数据的用户表空间,包括在该单个用户表空间中的索引和 LOB 数据。也可删除所包含的表跨几个表空间的用户表空间。即,可能表数据在一个表空间,索引在另一个表空间且任何 LOB 在第三个表空间。必须在一条语句中同时删除所有 三个表空间。包含跨越的表的所有表空间必须全部纳入此单条语句中,否则该删除请求 将失败。

要使用命令行来删除用户表空间,请输入:
    DROP TABLESPACE <name>
以下 SQL 语句将 删除表空间 ACCOUNTING:
    DROP TABLESPACE ACCOUNTING
删除用户临时表空间
仅当用户临时表空间中当前未定义已声明临时表或已创建临时表时,才能删除该表空间。当删除表空间时,不会尝试删除该表空间中的所有已声明临时表或已创建临时表。
注: 已声明临时表或已创建临时表是在说明它的应用程序与数据库断开连接时隐式删除的。
删除系统临时表空间
如果不首先创建另一系统临时表空间,那么不能删除页大小为 4 KB 的系统临时表空间。新的系统临时表空间必须具有 4 KB 页大小,原因是数据库必须始终存在至少一个具有 4 KB 页大小的系统临时表空间。例如,如果具有页大小为 4 KB 的单个系统临时表空间,并且您想要将一个容器添加到该表空间(它是 SMS 表空间),那么您必须首先添加一个具有适当数目的容器的新 4 KB 页大小的系统临时表空间,然后删除旧的系统临时表空间。(如果正在使用 DMS,那么可以添加容器而不必删除并重新创建表空间。)

缺省表空间页大小是创建数据库时使用的页大小(缺省情况下为 4 KB,但也可以为 8 KB、16 KB 或 32 KB)。

这是用来创建系统临时表空间的语句:
    CREATE SYSTEM TEMPORARY TABLESPACE <name>
      MANAGED BY SYSTEM USING ('<directories>')
之后,要使用命令行删除系统表空间,请输入以下内容:
    DROP TABLESPACE <name>
以下 SQL 语句创建一个称为 TEMPSPACE2 的新的系统临时表空间:
    CREATE SYSTEM TEMPORARY TABLESPACE TEMPSPACE2
      MANAGED BY SYSTEM USING ('d:\systemp2')
一旦创建了 TEMPSPACE2,那么可使用以下命令删除原来的系统临时表空间 TEMPSPACE1:
    DROP TABLESPACE TEMPSPACE1