Returning result sets from Transact-SQL procedures

Adaptive Server Anywhere and Sybase IQ use a RESULT clause to specify returned result sets. In Transact-SQL procedures, column names or alias names of the first query are returned to the calling environment.

Example of Transact-SQL procedure

The following Transact-SQL procedure illustrates how Transact-SQL stored procedures return result sets:

CREATE PROCEDURE showdept (@deptname varchar(30))
AS
	SELECT employee.emp_lname, employee.emp_fname
	FROM department, employee
	WHERE department.dept_name = @deptname
	AND department.dept_id = employee.dept_id

Example of Watcom-SQL procedure

The following is the corresponding Adaptive Server Anywhere or Sybase IQ procedure:

CREATE PROCEDURE showdept(in deptname varchar(30))
RESULT ( lastname char(20), firstname char(20))
BEGIN
	SELECT employee.emp_lname, employee.emp_fname
	FROM department, employee
	WHERE department.dept_name = deptname
	AND department.dept_id = employee.dept_id
END

Multiple result sets

There are minor differences in the way the three Sybase client tools present multiple results to the client:

For more information about procedures and results, see Chapter 8, “Using Procedures and Batches” in the Sybase IQ System Administration Guide.