Casos avançados

Como migrar STORED PROCEDURES do SQL Server para PostgreSQL (Guia Prático)

Checklist visual T-SQL → PL/pgSQL: parâmetros, blocos, variáveis, exceções e transações.

Migrar procedures não é trocar palavras: é reescrever a anatomia do bloco. Use este checklist ao revisar cada objeto.

Anatomia comparada

SQL Server

CREATE PROCEDURE dbo.Exemplo @Id INT AS
BEGIN
  DECLARE @x INT = 0;
  SELECT @x = COUNT(*) FROM t WHERE id = @Id;
  IF @@ROWCOUNT = 0 RAISERROR('vazio', 16, 1);
END

PostgreSQL

CREATE OR REPLACE PROCEDURE exemplo(p_id int)
LANGUAGE plpgsql AS $$
DECLARE
  x int := 0;
BEGIN
  SELECT COUNT(*) INTO x FROM t WHERE id = p_id;
  IF NOT FOUND THEN RAISE EXCEPTION 'vazio';
END;
$$;

Checklist do DBA

Parâmetros: @nome → nome com tipo, sem @ no corpo PL/pgSQL.

Variáveis: DECLARE no topo do bloco; := para atribuição.

Conjuntos: SET @x = (SELECT ...) → SELECT ... INTO x.

Erros: RAISERROR/THROW → RAISE EXCEPTION.

Retorno: RETURN sem valor no fim de procedures que não retornam resultset.

Analisador de Impacto

Um arquivo com dezenas de procedures? Faça upload no Análise de Projeto e veja o mapa de risco antes de converter tudo.

Abrir Análise de Projeto →