Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema 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)