如果表空间存在于 DB2 中,如何删除它
How to delete a tablespace if it exists in DB2
我一直在尝试删除 DB2 中存在的表空间 (Z/OS),如果它存在的话。这样做的目的是能够有一个脚本来创建一个新的开发或替换现有的开发数据库。
我一直在尝试类似的方法:
BEGIN
IF (exists (SELECT * FROM SYSIBM.SYSTABLESPACES WHERE TBSPACE = 'SGE')) THEN
DROP TABLESPACE "SGE";
END IF;
END @
但它似乎没有采用 DROP
(至少在 Data Studio 4.1 上)。还有什么我应该做的吗?
提前致谢
mustaccio 的评论是正确的。我留下了这样的代码,它对我有用:
BEGIN
IF (exists (SELECT * FROM SYSIBM.SYSTABLESPACES WHERE TBSPACE = 'SGE')) THEN
EXECUTE IMMEDIATE 'DROP TABLESPACE "SGE"';
END IF;
END @
我也可以对其他对象执行相同的操作,例如模式等。我只需要根据我要删除的内容更改存在条件。
我一直在尝试删除 DB2 中存在的表空间 (Z/OS),如果它存在的话。这样做的目的是能够有一个脚本来创建一个新的开发或替换现有的开发数据库。
我一直在尝试类似的方法:
BEGIN
IF (exists (SELECT * FROM SYSIBM.SYSTABLESPACES WHERE TBSPACE = 'SGE')) THEN
DROP TABLESPACE "SGE";
END IF;
END @
但它似乎没有采用 DROP
(至少在 Data Studio 4.1 上)。还有什么我应该做的吗?
提前致谢
mustaccio 的评论是正确的。我留下了这样的代码,它对我有用:
BEGIN
IF (exists (SELECT * FROM SYSIBM.SYSTABLESPACES WHERE TBSPACE = 'SGE')) THEN
EXECUTE IMMEDIATE 'DROP TABLESPACE "SGE"';
END IF;
END @
我也可以对其他对象执行相同的操作,例如模式等。我只需要根据我要删除的内容更改存在条件。