Variables in Transact-SQL procedures

SQL Anywhere and Sybase IQ use the SET statement to assign values to variables in a procedure. In Transact-SQL, values are assigned using the SELECT statement with an empty table list. The following simple procedure illustrates how the Transact-SQL syntax works:

CREATE PROCEDURE multiply 
					@mult1 int,
					@mult2 int,
					@result int output 
AS 
SELECT @result = @mult1 * @mult2

This procedure can be called as follows:

CREATE VARIABLE @product int
go
EXECUTE multiply 5, 6, @product OUTPUT
go

The variable @product has a value of 30 after the procedure executes.

Order and persistence of variables

There are some differences in order and persistence of variable declarations:

For more information on using the SELECT statement to assign variables, see “Writing compatible queries”. For more information on using the SET statement to assign variables, see "SET statement [ESQL]" in Reference: Statements and Options.