在db2 LUW中删除并重新创建表

时间:2011-01-30 18:32:02

标签: sql stored-procedures db2

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

(1)DECLARE @tablefound INTEGER;

SET @TABLEFOUND =(从syscat.tables中选择COUNT(*),其中tabschema ='AELUM'和tabname ='PRODUCTS');

(2) IF @TABLEFOUND>0 THEN

DROP TABLE "AELUM"."PRODUCTS" ;

(3)END IF;

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和Windows:在“INTEGER”之后到达文本结尾 (2)DB2 for Linux,UNIX和Windows:遇到意外的文本“IF @ TABLEFOUND> 0 THEN”。
(3)此行的多个标记 - DB2 for Linux,UNIX和Windows:“”JOIN“”预计将构成一个完整的范围。 - DB2 for Linux,UNIX和Windows:在“IF”之后预期“”“”。

我尝试过更改语句终止符;到<没有运气 请让我知道我做错了什么。因为我想要实现的是一组SQL脚本,我可以运行以将我的表“恢复”到干净/处女状态。我正在使用db2 LUW 9.7.2和IBM DATA STUDIO 2.2.1.0版

此致

1 个答案:

答案 0 :(得分:0)

我没有看到你检查表是否存在的原因......如果你打算放弃它。只有两个语句,一个drop table,然后一个create table。第一个可能会失败,但它确实没关系。