【问题标题】:Drop and re-creating tables in db2 LUW在 db2 LUW 中删除和重新创建表
【发布时间】:2011-01-30 18:32:01
【问题描述】:

我正在尝试编写一个 sql 脚本来检查表是否存在,如果存在则删除它,然后重新创建表 我正在尝试使用 IBM Data studio 2.2 的 DB2 9.7 LUW 的 sql 脚本来执行此操作

(1) 声明@tablefound INTEGER ;

SET @TABLEFOUND = (select COUNT(*) from syscat.tables where tabschema = 'AELUM' and tabname = 'PRODUCTS');

(2) IF @TABLEFOUND>0 THEN

DROP TABLE "AELUM"."PRODUCTS" ;

(3) 结束如果;

CREATE TABLE "AELUM"."PRODUCTS" (
    "Created" DATE NOT NULL DEFAULT CURRENT_DATE,
    "Author" VARCHAR(255),
    "ProductName" VARCHAR(255),
    "ProductComment" VARCHAR(255),
    "ProductDefinition" XML
)
DATA CAPTURE NONE ;

我收到以下错误

(1) DB2 for Linux, UNIX, and Windows:在“INTEGER”之后到达文本结尾。
(2) DB2 for Linux, UNIX, and Windows:遇到意外的文本“IF @TABLEFOUND>0 THEN”。
(3) 此行有多个标记 - DB2 for Linux, UNIX, and Windows:预计“JOIN”将形成一个完整的范围。 - DB2 for Linux, UNIX, and Windows:在“IF”之后应该是“””。

我尝试将语句终止符从 ;到

问候

【问题讨论】:

  • 是 DB2 SQL 语法,还是 MS SQL Server 语法?

标签: sql stored-procedures db2


【解决方案1】:

我看不出您检查该表是否存在的原因......如果您还是要删除它。只有两条语句,一条删除表,然后一条创建表。第一个可能会失败,但这并不重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多