Freigeben über


Angeben eines Parameternamens

Jeder Parameter einer gespeicherten Prozedur muss mit einem eindeutigen Namen definiert werden. Parameternamen gespeicherter Prozeduren müssen wie Standardvariablen in Transact-SQL mit einem einzelnen @-Zeichen beginnen und den Regeln für Objektbezeichner folgen. Der Parametername kann in der gespeicherten Prozedur verwendet werden, um den Wert des Parameters zu erhalten und zu ändern.

Sie können Werte an gespeicherte Prozeduren übergeben, indem Sie entweder die Parameter explizit benennen und ihnen den entsprechenden Wert zuweisen oder indem Sie die Parameterwerte so bereitstellen, wie sie in der CREATE PROCEDURE-Anweisung aufgeführt wurden, ohne sie jedoch zu benennen. Wenn z. B. die gespeicherte Prozedur my_proc drei Parameter mit den Namen @first, @second und @third erwartet, können die Werte, die an die gespeicherte Prozedur übergeben werden, wie den Parameternamen, wie folgt zugewiesen werden:

EXECUTE my_proc @second = 2, @first = 1, @third = 3;

Sie können jedoch auch mithilfe der Position zugewiesen werden, ohne die Parameter zu benennen:

EXECUTE my_proc 1, 2, 3;

Wenn Sie die Parameter beim Ausführen der gespeicherten Prozedur benennen, können sie in jeder beliebigen Reihenfolge bereitgestellt werden. Wenn die Parameter nicht benannt werden, müssen sie in derselben Reihenfolge (von links nach rechts) bereitgestellt werden, mit der sie in der gespeicherten Prozedur definiert sind. Darüber hinaus müssen alle Parameter bereitgestellt werden, die vor einem gegebenen Parameter aufgeführt werden, und zwar auch dann, wenn sie optional sind oder über Standardwerte verfügen. Wenn z. B. alle Parameter von my_proc optional sind, kann my_proc ausgeführt werden, wenn nur Werte für den ersten und den zweiten Parameter angegeben werden, jedoch nicht, wenn nur die Werte für den zweiten und den dritten Parameter angegeben werden. Diese Vorgehensweise ist erforderlich, da Microsoft SQL Server die angegebenen Parameter andernfalls nicht identifizieren kann.