Use Syntax 1 to invoke a procedure, as an Adaptive Server Enterprise-compatible alternative to the CALL statement. Use Syntax 2 to execute a prepared SQL statement in Transact-SQL.
EXECUTE [ @return_status = ] [creator.]procedure_name [ argument, ... ]
[ @parameter-name = ] expression
| [ @parameter-name = ] @variable [ output ]
EXECUTE ( string-expression )
Syntax 1 executes a stored procedure, optionally supplying procedure parameters and retrieving output values and return status information.
The EXECUTE statement is implemented for Transact-SQL compatibility, but can be used in either Transact-SQL or Watcom-SQL batches and procedures.
With Syntax 2, you can execute statements within Transact-SQL stored procedures and triggers. The EXECUTE statement extends the range of statements that can be executed from within procedures and triggers. It lets you execute dynamically prepared statements, such as statements that are constructed using the parameters passed in to a procedure. Literal strings in the statement must be enclosed in single quotes, and the statement must be on a single line.
The Transact-SQL EXECUTE statement does not have a way to signify that a result set is expected. One way to indicate that a Transact-SQL procedure returns a result set is to include something like the following:
IF 1 = 0 THEN SELECT 1 AS a
You can also execute statements within Transact-SQL stored procedures and triggers. See EXECUTE IMMEDIATE statement [SP].
Must be the owner of the procedure, have EXECUTE permission for the procedure, or have DBA authority.
The following procedure illustrates Syntax 1.
CREATE PROCEDURE p1( @var INTEGER = 54 ) AS PRINT 'on input @var = %1!', @var DECLARE @intvar integer SELECT @intvar=123 SELECT @var=@intvar PRINT 'on exit @var = %1!', @var;
The following statement executes the procedure, supplying the input value of 23 for the parameter. If you are connected from an Open Client or JDBC application, the PRINT messages are displayed on the client window. If you are connected from an ODBC or embedded SQL application, the messages are displayed on the Server Messages window.
EXECUTE p1 23;
The following is an alternative way of executing the procedure, which is useful if there are several parameters.
EXECUTE p1 @var = 23;
The following statement executes the procedure, using the default value for the parameter
The following statement executes the procedure, and stores the return value in a variable for checking return status.
EXECUTE @status = p1 23;