2011-01-30 45 views
0

我正在嘗試編寫一個sql腳本,用於檢查表是否存在以及是否刪除它,然後重新創建表 我正在嘗試使用sql腳本DB2 9.7 LUW使用IBM Data Studio 2.2在db2中刪除和重新創建表LUW

(1)DECLARE @tablefound INTEGER;設置@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爲Linux,UNIX和Windows:文字年底 「整數」 後達成。
(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

問候

+0

那是DB2 SQL語法還是MS SQL Server語法? – 2011-01-30 21:58:40

回答

0

我不明白了一個道理,爲什麼要檢查是否存在表...如果你只是無論如何要放棄它。只需要兩條語句,一個drop table,一個create table。第一個可能會失敗,但這並不重要。