(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como gerar scripts de migração de dados no Microsoft Copilot: passo a passo

João Barros 10 de November de 2026 5 min de leitura

Este tutorial mostra como usar o Microsoft Copilot para criar scripts de migração de dados entre bases de dados, com mapeamento de campos, transformações simples e validações. Saber gerar estes scripts com o Copilot acelera migrações, reduz erros manuais e fornece um ponto de partida auditável para developers e DBAs.

Pré-requisitos

  • Conta com acesso ao Microsoft Copilot (Copilot for Microsoft 365 ou Copilot Studio conforme disponibilidade).
  • Acesso às duas bases de dados (origem e destino) e esquema simples — ex.: SQL Server, PostgreSQL ou Azure SQL.
  • Editor de código (VS Code recomendado) e cliente SQL para testar scripts.
  • Noções básicas de SQL e mapeamento ETL (extract, transform, load).

Passo 1: Preparar a descrição da migração

Explique ao Copilot, de forma clara e estruturada, o que pretende migrar: tabelas, colunas, tipos, regras de transformação e volume aproximado. A qualidade da descrição determina a utilidade do script gerado.

Descrição exemplo:
Migrar a tabela Customers de SQLServer para Azure SQL.
Colunas:
- CustomerID int -> CustomerId int (PK)
- FirstName varchar(100) + LastName varchar(100) -> FullName nvarchar(200) (concat com espaço)
- Email varchar(200) -> Email nvarchar(200) (lowercase)
- CreatedDate datetime -> CreatedUtc datetime2 (conversão para UTC)
Regras:
- Ignorar registos com Email NULL
- Lotes de 1000 registos por transacção
- Log de erros para uma tabela MigrationErrors

Passo 2: Pedir a primeira versão do script ao Copilot

No editor onde tem o Microsoft Copilot activo, cole a descrição e peça um script SQL que faça a migração em lotes, com transacções e inserções para a base de destino. Peça também a criação da tabela MigrationErrors.

Prompt exemplo para Copilot:
"Gera um script T-SQL que migre a tabela Customers seguindo a Descrição acima. Inclui: criação de MigrationErrors, loop por lotes de 1000, transacções, tratamento de emails NULL e conversões de data e nomes. Dá comentários no código."

Passo 3: Rever e ajustar o script

O Copilot devolve um script base. Leia cuidadosamente: verifique transacções, tipagens, conversões e cláusulas WHERE. Ajuste nomes de schema/tabelas e índices conforme a sua infra‑estrutura.

Exemplo de saída (simplificada):
BEGIN TRANSACTION;
-- Cria tabela de erros
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'MigrationErrors')
CREATE TABLE MigrationErrors (ErrorId INT IDENTITY(1,1), CustomerID INT, ErrorMsg NVARCHAR(4000), CreatedUtc DATETIME2 DEFAULT SYSUTCDATETIME());

DECLARE @BatchSize INT = 1000, @MinId INT = 0, @MaxId INT;
SELECT @MaxId = MAX(CustomerID) FROM SourceDB.dbo.Customers;
WHILE @MinId < ISNULL(@MaxId,0)
BEGIN
  BEGIN TRY
    BEGIN TRANSACTION;
    INSERT INTO TargetDB.dbo.Customers (CustomerId, FullName, Email, CreatedUtc)
    SELECT CustomerID,
           RTRIM(FirstName) + ' ' + RTRIM(LastName) AS FullName,
           LOWER(Email) AS Email,
           SWITCHOFFSET(CONVERT(datetimeoffset, CreatedDate), '+00:00') AS CreatedUtc
    FROM SourceDB.dbo.Customers
    WHERE Email IS NOT NULL AND CustomerID > @MinId
    ORDER BY CustomerID
    OFFSET 0 ROWS FETCH NEXT @BatchSize ROWS ONLY;

    SET @MinId = @MinId + @BatchSize;
    COMMIT TRANSACTION;
  END TRY
  BEGIN CATCH
    INSERT INTO MigrationErrors (CustomerID, ErrorMsg)
    VALUES (ERROR_NUMBER(), ERROR_MESSAGE());
    ROLLBACK TRANSACTION;
    BREAK;
  END CATCH
END

Passo 4: Testar em ambiente de desenvolvimento

Execute o script primeiro numa cópia pequena da base de dados. Verifique se as transformações (concat, lowercase, timezone) estão correctas e se a tabela MigrationErrors regista problemas. Ajuste o BatchSize para desempenho.

Passo 5: Acrescentar validações pós-migração

Pedir ao Copilot para gerar consultas de validação: contagens por tabela, checksums simples e comparação de amostras entre origem e destino. Estas queries ajudam a confirmar a integridade.

Prompt exemplo:
"Gera queries para validar migração: 1) contagem total de registos por tabela; 2) diferença de emails nulos; 3) checksum simples por lote usando HASHBYTES."

Passo 6: Automatizar execução segura

Use um ficheiro de script ou um job (ex.: SQL Agent, Azure Data Factory para versões cloud) para executar com logs e alertas. Peça ao Copilot um exemplo de job ou pipeline simples se precisar de um template.

Exemplo de comando para SQL Agent (conceptual):
-- Criar job que chama stored procedure de migração
EXEC msdb.dbo.sp_add_job @job_name = 'Job_Migrate_Customers';
-- adicionar steps e schedule conforme necessário

Verificar o resultado

Confirme que o número de registos na tabela destino corresponde ao esperado, que não existem emails NULL transferidos, e que a tabela MigrationErrors está vazia (ou apenas com registos esperados). Execute as queries de validação geradas e analise logs de transacção e tempos por lote para desempenho.

Conclusão

Usar o Microsoft Copilot para gerar scripts de migração acelera o desenvolvimento do script base e poupa tempo nas tarefas repetitivas. Próximos passos: criar testes automatizados, ajustar desempenho por índices e planear rollback. Dica: reveja sempre manualmente e teste em ambiente isolado antes de produção — qual é a transformação mais crítica na sua migração?