返回结果集
Watcom SQL 使用 RESULT 子句指定返回的结果集。在 Transact-SQL 过程中,第一个查询的列名或别名将返回到调用环境。
下面的 Transact-SQL 过程阐释了结果集如何从 Transact-SQL 存储过程返回:
CREATE PROCEDURE showdept @deptname varchar(30)
AS
SELECT Employees.Surname, Employees.GivenName
FROM Departments, Employees
WHERE Departments.DepartmentName = @deptname
AND Departments.DepartmentID = Employees.DepartmentID;
下面是相应的 Watcom SQL 过程:
CREATE PROCEDURE showdept2(in deptname
varchar(30) )
RESULT ( lastname char(20), firstname char(20))
ON EXCEPTION RESUME
BEGIN
SELECT Employees.Surname, Employees.GivenName
FROM Departments, Employees
WHERE Departments.DepartmentName = deptname
AND Departments.DepartmentID = Employees.DepartmentID
END;
过程主体
Transact-SQL 过程的主体是一系列以关键字 AS 开始的 Transact-SQL 语句。Watcom SQL 过程的主体是用关键字 BEGIN 和 END 括起来的复合语句。
Transact-SQL
SQL Anywhere 支持 Adaptive Server Enterprise CREATE PROCEDURE 语句语法的子集。
在 SQL Anywhere 的 Transact-SQL 方言中仅支持 Transact-SQL SQL 过程。若要创建外部过程,必须使用 Watcom SQL 语法。Adaptive Server Enterprise 不支持 NO RESULT
SET 子句。如果提供了 Transact-SQL WITH RECOMPILE 可选子句,它将被忽略。数据库启动后,当过程第一次执行时,SQL Anywhere 总是重新编译它们,并存储编译的过程直到数据库停止。