Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tabela temporária dentro de função

É possível utilizar tabelas temporárias dentro de uma função?

Quando tento executar o exemplo abaixo é dado o seguinte erro Msg 102, Nível 15, Estado 31, Procedimento SALDO, Linha 15 [Linha de Início do Lote 0] Sintaxe incorreta próxima a 'BEGIN'.

CREATE FUNCTION SALDO (@VALOR FLOAT, @NUM1 INT, @NUM2 INT) RETURNS TABLE
AS
BEGIN
    DECLARE @TEMP TABLE (VALOR FLOAT)

    WHILE @NUM1 <= @NUM2
        BEGIN
            SET @VALOR = @VALOR * @NUM1
            INSERT INTO @TEMP (VALOR) VALUES (@VALOR)

            SET @NUM1 += 1
        END
    RETURN SELECT * FROM @TEMP
END
1 resposta
solução!

Olá Jackson!

Desculpa pela demora em ti responder. Realmente você não pode declarar uma tabela temporária dentro de função, o que você poderia fazer era declarar ela fora da função (no caso antes da função) e usar a mesma dentro da função, fazendo alguma manipulação da mesma, como adicionar registros.

Espero que tenha ajudado!