ParameterParameters

GILT FÜR: jaSQL Server jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Parameter werden zum Austauschen von Daten zwischen gespeicherten Prozeduren und Funktionen und der Anwendung bzw. dem Tool verwendet, von der bzw. von dem die gespeicherte Prozedur oder Funktion aufgerufen wurde.Parameters are used to exchange data between stored procedures and functions and the application or tool that called the stored procedure or function:

  • Eingabeparameter ermöglichen dem Aufrufer die Übergabe eines Datenwerts an die gespeicherte Prozedur oder die Funktion.Input parameters allow the caller to pass a data value to the stored procedure or function.
  • Ausgabeparameter ermöglichen der gespeicherten Prozedur das Übergeben eines Datenwerts oder einer Cursorvariablen zurück an den Aufrufer.Output parameters allow the stored procedure to pass a data value or a cursor variable back to the caller. Benutzerdefinierte Funktionen können keine Ausgabeparameter angeben.User-defined functions cannot specify output parameters.
  • Jede gespeicherte Prozedur gibt einen ganzzahligen Rückgabecode an den Aufrufer zurück.Every stored procedure returns an integer return code to the caller. Falls die gespeicherte Prozedur nicht explizit einen Wert für den Rückgabecode festlegt, ist der Rückgabecode 0.If the stored procedure does not explicitly set a value for the return code, the return code is 0.

Die folgende gespeicherte Prozedur zeigt die Verwendung eines Eingabeparameters, eines Ausgabeparameters und eines Rückgabecodes:The following stored procedure shows the use of an input parameter, an output parameter, and a return code:

-- Create a procedure that takes one input parameter and returns one output parameter and a return code.
CREATE PROCEDURE SampleProcedure @EmployeeIDParm INT,
         @MaxTotal INT OUTPUT
AS
-- Declare and initialize a variable to hold @@ERROR.
DECLARE @ErrorSave INT
SET @ErrorSave = 0

-- Do a SELECT using the input parameter.
SELECT FirstName, LastName, JobTitle
FROM HumanResources.vEmployee
WHERE EmployeeID = @EmployeeIDParm

-- Save any nonzero @@ERROR value.
IF (@@ERROR <> 0)
   SET @ErrorSave = @@ERROR

-- Set a value in the output parameter.
SELECT @MaxTotal = MAX(TotalDue)
FROM Sales.SalesOrderHeader;

IF (@@ERROR <> 0)
   SET @ErrorSave = @@ERROR

-- Returns 0 if neither SELECT statement had an error; otherwise, returns the last error.
RETURN @ErrorSave
GO

Wenn eine gespeicherte Prozedur oder eine Funktion ausgeführt wird, können die Eingabeparameter entweder auf eine Konstante festgelegt werden oder den Wert einer Variablen verwenden.When a stored procedure or function is executed, input parameters can either have their value set to a constant or use the value of a variable. Ausgabeparameter und Rückgabecodes müssen ihre Werte in eine Variable zurückgeben.Output parameters and return codes must return their values into a variable. Parameter und Rückgabecodes können Datenwerte mit Transact-SQL-Variablen oder Anwendungsvariablen austauschen.Parameters and return codes can exchange data values with either Transact-SQL variables or application variables.

Falls eine gespeicherte Prozedur von einem Batch oder Skript aufgerufen wird, können für die Parameter und Rückgabecodewerte im selben Batch definierte Transact-SQL-Variablen verwendet werden.If a stored procedure is called from a batch or script, the parameters and return code values can use Transact-SQL variables defined in the same batch. Das folgende Beispiel ist ein Batch, der die zuvor erstellte Prozedur ausführt.The following example is a batch that executes the procedure created earlier. Der Eingabeparameter wird als Konstante angegeben; die Werte des Ausgabeparameters und des Rückgabecodes werden in Transact-SQL-Variablen gespeichert:The input parameter is specified as a constant and the output parameter and return code place their values in Transact-SQL variables:

-- Declare the variables for the return code and output parameter.
DECLARE @ReturnCode INT
DECLARE @MaxTotalVariable INT

-- Execute the stored procedure and specify which variables
-- are to receive the output parameter and return code values.
EXEC @ReturnCode = SampleProcedure @EmployeeIDParm = 19,
   @MaxTotal = @MaxTotalVariable OUTPUT

-- Show the values returned.
PRINT ' '
PRINT 'Return code = ' + CAST(@ReturnCode AS CHAR(10))
PRINT 'Maximum Quantity = ' + CAST(@MaxTotalVariable AS CHAR(10))
GO

Eine Anwendung kann an Programmvariablen gebundene Parametermarkierungen zum Austausch von Daten zwischen Anwendungsvariablen, Parametern und Rückgabecodes verwenden.An application can use parameter markers bound to program variables to exchange data between application variables, parameters, and return codes.

Weitere InformationenSee Also

CREATE PROCEDURE (Transact-SQL) CREATE PROCEDURE (Transact-SQL)
DECLARE @local_variable (Transact-SQL) DECLARE @local_variable (Transact-SQL)
CREATE FUNCTION (Transact-SQL) CREATE FUNCTION (Transact-SQL)
Parameter und Wiederverwendung von Ausführungsplänen Parameters and Execution Plan Reuse section
Variablen (Transact-SQL)Variables (Transact-SQL)