Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

definir uma variável com um valor de retorno de uma consulta


Se a consulta retornar um conjunto de resultados escalar, você precisará fazer
DECLARE @VAR INT

DECLARE @Result TABLE
(
C INT
)

DECLARE @SQl NVARCHAR(MAX)
SET @SQl = 'SELECT 1'

INSERT INTO @Result
EXEC(@SQl)

SELECT @VAR = C FROM @Result

Muito melhor usar sp_executesql e OUTPUT parâmetros
DECLARE @VAR INT

DECLARE @SQl NVARCHAR(MAX)
SET @SQl = 'SELECT @out = 1'

EXEC sp_executesql @SQl, N'@out int output', @out = @VAR OUTPUT

SELECT @VAR