Удаление и повторное создание таблиц в db2 LUW - PullRequest
0 голосов
/ 30 января 2011

Я пытаюсь написать сценарий sql, который проверяет, существует ли таблица и удаляет ли она ее, а затем заново создает таблицу. Я пытаюсь сделать это, используя сценарий sql для DB2 9.7 LUW с использованием IBM Data studio 2.2

(1) DECLARE @tablefound INTEGER;

SET @TABLEFOUND = (выберите COUNT (*) из syscat.tables, где 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: конец текста был достигнут после "INTEGER".
(2) DB2 дляLinux, UNIX и Windows: обнаружен неожиданный текст «IF @TABLEFOUND> 0 THEN».
(3) Несколько строк в этой строке - DB2 для Linux, UNIX и Windows: «« JOIN »» должен был сформироватьполный объем.- DB2 для Linux, UNIX и Windows: после "IF" ожидалось "" "".

Я попытался изменить терминатор оператора с;<и не повезло Пожалуйста, дайте мне знать, что я делаю не так.Как все, чего я хочу достичь - это набор сценариев SQL, которые я могу запустить, чтобы "восстановить" мои таблицы в чистом / чистом виде.Я использую db2 LUW 9.7.2 и IBM DATA STUDIO Release 2.2.1.0 </p>

С уважением

1 Ответ

0 голосов
/ 11 мая 2011

Я не вижу причины, по которой вы проверяете, существует ли таблица ... если вы все равно собираетесь ее отбросить.Просто имейте два оператора, одну таблицу удаления, затем одну таблицу создания.Первый может потерпеть неудачу, но это действительно не имеет значения.

...