SQLBase IF 语句
SQLBase IF statement
我是 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
存储一个简单的过程,运行它来自 SQLTalk 或 TeamDeveloper。
可选择将 Table 名称作为参数发送,并使用 'Execute SYSADM.MyProc \TMP/ ' 运行
,或者不带参数存储 Proc 并硬编码 Table 名称,然后简单地 '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()
我是 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
存储一个简单的过程,运行它来自 SQLTalk 或 TeamDeveloper。 可选择将 Table 名称作为参数发送,并使用 'Execute SYSADM.MyProc \TMP/ ' 运行 ,或者不带参数存储 Proc 并硬编码 Table 名称,然后简单地 '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()