SQLBase IF оператор

Я довольно новичок в SQLBase и уже несколько дней борюсь, возможно ли написать оператор IF в автономном скрипте? Что-то вроде:

IF EXISTS (SELECT * FROM SYSADM.SYSTABLES WHERE NAME = 'TMP') THEN
    DROP TABLE TMP
END

или же

IF NOT EXISTS (SELECT * FROM SYSADM.SYSTABLES WHERE NAME = 'TMP') THEN
    CRETE TABLE TMP ...
END

1 ответ

Решение

Сохраните простую процедуру и запустите ее из SQLTalk или TeamDeveloper . При необходимости отправьте имя таблицы в качестве параметра и запустите его с помощью команды "Execute SYSADM.MyProc \TMP/", либо сохраните Proc без параметров, жестко закодируйте имя таблицы и просто "Execute SYSADM.MyProc".

ps Не забывайте SqlClearImmediate()!

store MyProc
PROCEDURE: table_proc static
PARAMETERS:
 String: psTableName
Local Variables
 Boolean: bExists
Actions
 On Procedure Startup
  If SqlExists('Select 1 from SYSADM.SYSTABLES where Name = :psTableName' , bExists )
   If bExists
    Call SqlImmediate('Drop table TMP')
   Else
    Call SqlImmediate('Create Table TMP(col1 int )'  )
   Call SqlClearImmediate()

Другие вопросы по тегам