可使用语法 1 调用过程,它是 CALL 语句的替代方法,与 Adaptive Server Enterprise 兼容。语法 2 用于在 Transact-SQL 中执行预准备 SQL 语句。
EXECUTE [ @return_status = ] [creator.]procedure_name [ argument, ... ]
argument : [ @parameter-name = ] expression | [ @parameter-name = ] @variable [ output ]
EXECUTE ( string-expression )
语法 1 执行存储过程,选择性地提供过程参数以及检索输出值和返回状态信息。
实现 EXECUTE 语句是为了与 Transact-SQL 兼容,但此语句可以在 Transact-SQL 或 Watcom-SQL 批处理和过程中使用。
若使用语法 2,则可在 Transact-SQL 存储过程和触发器内执行语句。EXECUTE 语句扩展了可以从过程和触发器内执行的语句的范围。它使您可以执行动态预准备语句,比如用传递到过程中的参数构造的语句。此语句中的字符串必须用单引号括起来,并且此语句必须位于一行上。
Transact-SQL EXECUTE 语句无法表明需要结果集。指示 Transact-SQL 过程返回结果集的一种方法是包含类似下面的语句:
IF 1 = 0 THEN SELECT 1 AS a |
也可以在 Transact-SQL 存储过程和触发器内执行语句。请参见EXECUTE IMMEDIATE 语句 [SP]。
必须是过程的所有者,具有过程的 EXECUTE 权限或者有 DBA 权限。
无。
下面的过程阐释了语法 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; |
以下语句使用参数输入值 23 执行过程。如果是从 Open Client 或 JDBC 应用程序连接,则 PRINT 消息显示在客户端窗口上。如果是从 ODBC 或嵌入式 SQL 应用程序连接,则消息显示在数据库服务器消息窗口中。
EXECUTE p1 23; |
以下是另一种执行过程的方法,当有多个参数时该方法很有用。
EXECUTE p1 @var = 23; |
以下语句使用参数的缺省值执行过程。
EXECUTE p1; |
以下语句执行过程,并将返回值存储在用于检查状态的变量中。
EXECUTE @status = p1 23; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |