Partilhar via


Parameters

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Base de dados SQL no Microsoft Fabric

Os parâmetros são usados para trocar dados entre procedimentos armazenados e funções e o aplicativo ou ferramenta que chamou o procedimento armazenado ou função:

  • Os parâmetros de entrada permitem que o chamador passe um valor de dados para o procedimento armazenado ou função.
  • Os parâmetros de saída permitem que o procedimento armazenado passe um valor de dados ou uma variável de cursor de volta para o chamador. As funções definidas pelo usuário não podem especificar parâmetros de saída.
  • Cada procedimento armazenado retorna um código de retorno inteiro para o chamador. Se o procedimento armazenado não definir explicitamente um valor para o código de retorno, o código de retorno será 0.

O procedimento armazenado a seguir mostra o uso de um parâmetro de entrada, um parâmetro de saída e um código de retorno:

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

Quando um procedimento armazenado ou função é executado, os parâmetros de entrada podem ter seu valor definido como uma constante ou usar o valor de uma variável. Os parâmetros de saída e os códigos de retorno devem retornar seus valores em uma variável. Parâmetros e códigos de retorno podem trocar valores de dados com variáveis Transact-SQL ou variáveis de aplicativo.

Se um procedimento armazenado for chamado a partir de um lote ou script, os parâmetros e valores de código de retorno podem usar Transact-SQL variáveis definidas no mesmo lote. O exemplo a seguir é um lote que executa o procedimento criado anteriormente. O parâmetro de entrada é especificado como uma constante e o parâmetro de saída e o código de retorno colocam seus valores em Transact-SQL variáveis:

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

Um aplicativo pode usar marcadores de parâmetro vinculados a variáveis de programa para trocar dados entre variáveis de aplicativo, parâmetros e códigos de retorno.

Ver também

CRIAR PROCEDIMENTO (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
CRIAR FUNÇÃO (Transact-SQL)
Secção de Reutilização de Parâmetros e Plano de Execução
Variáveis (Transact-SQL)