Delen via


Parameters

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-database in Microsoft Fabric Preview

Parameters worden gebruikt om gegevens uit te wisselen tussen opgeslagen procedures en functies en de toepassing of het hulpprogramma dat de opgeslagen procedure of functie wordt genoemd:

  • Met invoerparameters kan de aanroeper een gegevenswaarde doorgeven aan de opgeslagen procedure of functie.
  • Met uitvoerparameters kan de opgeslagen procedure een gegevenswaarde of een cursorvariabele weer doorgeven aan de aanroeper. Door de gebruiker gedefinieerde functies kunnen geen uitvoerparameters opgeven.
  • Elke opgeslagen procedure retourneert een geheel getal retourcode naar de aanroeper. Als de opgeslagen procedure geen waarde voor de retourcode expliciet instelt, is de retourcode 0.

De volgende opgeslagen procedure toont het gebruik van een invoerparameter, een uitvoerparameter en een retourcode:

-- 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

Wanneer een opgeslagen procedure of functie wordt uitgevoerd, kunnen invoerparameters hun waarde instellen op een constante of de waarde van een variabele gebruiken. Uitvoerparameters en retourcodes moeten hun waarden retourneren in een variabele. Parameters en retourcodes kunnen gegevenswaarden uitwisselen met Transact-SQL variabelen of toepassingsvariabelen.

Als een opgeslagen procedure wordt aangeroepen vanuit een batch of script, kunnen de parameters en retourcodewaarden Transact-SQL variabelen gebruiken die in dezelfde batch zijn gedefinieerd. Het volgende voorbeeld is een batch waarmee de eerder gemaakte procedure wordt uitgevoerd. De invoerparameter wordt opgegeven als een constante en de uitvoerparameter en retourcode plaatsen hun waarden in Transact-SQL variabelen:

-- 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

Een toepassing kan parametermarkeringen gebruiken die zijn gebonden aan programmavariabelen om gegevens uit te wisselen tussen toepassingsvariabelen, parameters en retourcodes.

See Also

PROCEDURE MAKEN (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
CREËER FUNCTIE (Transact-SQL)
Sectie Parameters en uitvoeringsplan opnieuw gebruiken
Variables (Transact-SQL)