简单的批处理由一组 SQL 语句组成,这些语句用分号分隔,或是由单独的行分隔,行上只具有 go 一词。建议使用 go。例如,以下一组语句构成一个批处理,该批处理创建 Eastern Sales 部门并将所有销售代表从 Massachusetts 转移到该部门。
INSERT INTO department ( dept_id, dept_name ) VALUES ( 220, 'Eastern Sales' ) go UPDATE employee SET dept_id = 220 WHERE dept_id = 200 AND state = 'MA' go COMMIT go
您可以在应用程序中包括此组语句并一起执行它们。
Interactive SQL 和批处理Interactive SQL 首先对一组分号分隔的语句(例如上述语句)进行分析,然后将它们发送到服务器。在此情况下,Interactive SQL 将每一语句单独发送到服务器,而不是成批发送。如果在您的应用程序中没有此类分析代码,则应发送这些语句并它们视作批处理。用 BEGIN 和 END 将一组语句括起来可导致 Interactive SQL 将它们视作批处理。 |
过程和触发器中使用的许多语句也可以在批处理中使用。您可在批处理中使用控制语句(CASE、IF、LOOP)等,包括复合语句(BEGIN 和 END)。复合语句可以包括该复合语句内变量、异常、临时表或游标的声明。
只有在该名称的表已不存在时,以下批处理才创建表:
IF NOT EXISTS (
SELECT * FROM SYSTABLE
WHERE table_name = 't1' ) THEN
CREATE TABLE t1 (
firstcol INT PRIMARY KEY,
secondcol CHAR( 30 )
)
go
ELSE
MESSAGE 'Table t1 already exists' TO CLIENT;
END IF如果从 Interactive SQL 运行此批处理两次,则在您第一次运行该批处理时它创建该表,并在下一次运行该批处理时在 Interactive SQL [消息] 窗格中显示消息。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。