删除DB2视图(如果存在)

时间:2010-03-22 14:42:37

标签: sql db2

为什么这不适用于IBM Data Studio (Eclipse)

IF EXISTS (SELECT 1 FROM SYSIBM.SYSVIEWS WHERE NAME = 'MYVIEW' AND CREATOR = 'MYSCHEMA') THEN
    DROP VIEW MYSCHEMA.MYVIEW;
END IF;

我觉得它与语句终结符(;)有关但我找不到有效的语法。

How to check a procedure/view/table exists or not before dropping it in db2 9.1?的另一个类似问题表明,他们必须创建一个proc,但这不是我们的解决方案。

1 个答案:

答案 0 :(得分:1)

来自IBM的书:Getting Started with Data Studio for DB2

  

声明终结者:你可以发展   单个中的多个SQL语句   SQL Editor窗口通过结束每个   带语句终止符的语句   字符。默认终止符是a   分号。但你可以改变它   右键单击另一个字符   编辑器的内容和   选择上下文菜单操作Set   声明终结者。

修改

好的,问题似乎是语法。很多人似乎都有同样的问题。示例请参阅DROP TABLE, VIEW, ... only IF EXISTS

在示例中,提到了两种解决方案。

  1. 使用Begin atomic
  2. 使用db2perf_quiet_drop
  3. 程序

    有关详细信息,请阅读喜欢的页面。

    第二次编辑:

    我刚刚在IBM页面上找到了Begin ataomic的一个非常好的解释。请参阅IBM的Advanced SQL Scripting PL。例2就是你要找的。