Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (E-O)

 

EXECUTE-Anweisung [T-SQL]

Verwenden Sie Syntax 1, wenn Sie eine Prozedur als Adaptive Server Enterprise-kompatible Alternative zur CALL-Anweisung aufrufen wollen. Verwenden Sie Syntax 2, wenn Sie eine vorbereitete SQL-Anweisung in Transact-SQL ausführen wollen.

Syntax 1
EXECUTE [ @Rückgabestatus = ] [Ersteller.]Prozedurname [ Argument, ... ]
Argument :
 [ @Parametername = ] Ausdruck
| [ @Parametername = ] @Variable [ Ausgabe ]  
Syntax 2
EXECUTE ( Zeichenfolgenausdruck )
Bemerkungen

Mit Syntax 1 wird eine gespeicherte Prozedur ausgeführt. Dabei werden optionale Prozedurparameter geliefert und Ausgabewerte sowie Rückgabestatusinformationen abgerufen.

Die EXECUTE-Anweisung ist für Transact-SQL-Kompatibilität implementiert, kann aber in Batches und Prozeduren sowohl in Transact-SQL als auch in Watcom SQL verwendet werden.

Mit Syntax 2 können Sie Anweisungen innerhalb gespeicherter Transact-SQL-Prozeduren und -Trigger ausführen. Die EXECUTE-Anweisung erweitert den Bereich der Anweisungen, die innerhalb einer Prozedur oder eines Triggers ausgeführt werden können. Mit ihrer Hilfe können dynamisch vorbereitete Anweisungen ausgeführt werden, wie zum Beispiel Anweisungen, die unter Verwendung der an eine Prozedur übergebenen Parameter aufgebaut werden. Literalzeichenfolgen in der Anweisung müssen in Apostrophe gesetzt werden, und die Anweisung muss in einer einzigen Zeile stehen.

Die EXECUTE-Anweisung in Transact-SQL kann nicht angeben, dass eine Ergebnismenge erwartet wird. Um anzugeben, dass eine Transact-SQL-Prozedur eine Ergebnismenge zurückgibt, fügen Sie z.B. folgenden Zusatz ein:

IF 1 = 0 THEN
      SELECT 1 AS a

Sie können Anweisungen auch innerhalb von gespeicherten Transact-SQL-Prozeduren und -Triggern ausführen. Weitere Hinweise finden Sie unter EXECUTE IMMEDIATE-Anweisung [SP].

Berechtigungen

Sie müssen Eigentümer der Prozedur sein oder EXECUTE-Berechtigungen für diese Prozedur bzw. DBA-Berechtigungen besitzen.

Nebenwirkungen

Keine.

Siehe auch
Beispiel

Mit der folgenden Prozedur wird die Syntax 1 veranschaulicht.

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;

Die folgende Anweisung führt die Prozedur aus, indem sie den Eingabewert 23 für den Parameter liefert. Wenn Sie Ihre Verbindung aus einer Open Client- oder JDBC-Anwendung hergestellt haben, werden die PRINT-Nachrichten im Clientfenster angezeigt. Wenn die Verbindung aus einer ODBC- oder Embedded SQL-Anwendung hergestellt wurde, werden die Nachrichten im Meldungsfenster des Datenbankservers angezeigt.

EXECUTE p1 23;

Im Folgenden wird eine alternative Möglichkeit für die Ausführung der Prozedur gezeigt. Diese ist vor allem nützlich, wenn mehrere Parameter vorhanden sind.

EXECUTE p1 @var = 23;

Die folgende Anweisung führt die Prozedur aus, indem sie den Standardwert für den Parameter verwendet.

EXECUTE p1;

Die folgende Anweisung führt die Prozedur aus und speichert den Rückgabewert in einer Variable zur Überprüfung des Rückgabestatus.

EXECUTE @status = p1 23;