Sybase 12.4.2 Manuale Utente

Pagina di 536
CHAPTER 6    Using Procedures and Batches
239
DBISQL and batches
A list of semicolon-separated statements, such as the above, is parsed by 
DBISQL before it is sent to the server. In this case, DBISQL sends each 
statement individually to the server, not as a batch. Unless you have such 
parsing code in your application, the statements would be sent and treated as a 
batch. Putting a 
BEGIN 
and 
END 
around a set of statements causes DBISQL to 
treat them as a batch.
Many statements used in procedures can also be used in batches. You can use 
control statements (
CASE
IF
LOOP
, and so on), including compound 
statements (
BEGIN 
and 
END
), in batches. Compound statements can include 
declarations of variables, exceptions, temporary tables, or cursors inside the 
compound statement.
The following batch creates a table only if a table of that name does not already 
exist:
BEGIN
IF NOT EXISTS (
SELECT * FROM SYSTABLE
WHERE table_name = ’t1’ ) THEN
CREATE TABLE t1 (
firstcol INT PRIMARY KEY,
secondcol CHAR( 30 )
) ;
ELSE
MESSAGE ’Table t1 already exists’ ;
END IF 
END
If you run this batch twice from DBISQL, it creates the table the first time you 
run it. The next time you run it, it prints the message in the server log file on 
Unix or on the server message window on Windows NT.
Control statements
There are a number of control statements for logical flow and decision making 
in the body of the procedure or in a batch. The following is a list of control 
statements available.