SQL Server → PostgreSQL

Como simular Variáveis de Tabela (@tabela) do SQL Server no PostgreSQL

DECLARE @tabela TABLE não existe no PostgreSQL. Use CREATE TEMP TABLE ou CTEs conforme o ciclo de vida dos dados.

Variáveis de tabela no SQL Server vivem na memória da sessão, têm estatísticas limitadas e desaparecem ao sair do batch. O PostgreSQL não tem equivalente direto — você escolhe entre tabela temporária ou CTE.

CREATE TEMP TABLE (substituto mais comum)

SQL Server

DECLARE @tmp TABLE (id int, nome text);
INSERT INTO @tmp VALUES (1, 'A');

PostgreSQL

CREATE TEMP TABLE tmp (id int, nome text) ON COMMIT PRESERVE ROWS;
INSERT INTO tmp VALUES (1, 'A');

CTE (dados de curta duração)

Use CTE quando os dados só são necessários em uma query encadeada. Use TEMP TABLE quando a mesma estrutura é reutilizada em vários comandos na procedure.

WITH novos AS (
  SELECT id, nome FROM clientes WHERE ativo = true
)
SELECT * FROM novos;

Analisador de Impacto

Scripts cheios de @tabela quebram em bloco na migração. Rode o diagnóstico gratuito para mapear cada ocorrência.

Abrir Análise de Projeto →