Оператор SQLBase ЕСЛИ

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

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

or

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

person Valdas    schedule 12.02.2018    source источник
comment
Я знаю, что на этот вопрос уже был дан ответ, но если вам нужно больше узнать о SQLBase, вот ссылка на некоторые руководства для каждой версии от v8 до v12.1: samples.tdcommunity.net/index.php?dir=SqlBase/SqlBase_Books   -  person Steve Leighton    schedule 20.07.2018


Ответы (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()

person Steve Leighton    schedule 13.02.2018