Converter bancos de dados MySQL (MySQLToSQL)

Depois de se conectar ao MySQL, conectar-se ao SQL Server ou ao Azure SQL e definir as opções de mapeamento de dados e projetos, você poderá converter objetos de banco de dados do MySQL em objetos do SQL Server ou do Banco de Dados SQL do Azure.

O processo de conversão

A conversão de objetos de banco de dados usa as definições de objeto do MySQL, converte-as em objetos SQL Server ou do SQL do Azure semelhantes e, em seguida, carrega essas informações para os metadados do SSMA. Ela não carrega as informações na instância do SQL Server. Em seguida, você pode exibir os objetos e as propriedades deles usando o Explorador de Metadados do SQL Server ou do SQL do Azure.

Durante a conversão, o SSMA imprime as mensagens de saída no painel Saída e as mensagens de erro no painel Lista de Erros. Use as informações de saída e erro para determinar se você precisa modificar seus bancos de dados do MySQL ou seu processo de conversão para obter os resultados de conversão desejados.

Definir opções de conversão

Antes de converter objetos, revise as opções de conversão do projeto na caixa de diálogo Configurações do Projeto. Ao usar essa caixa de diálogo, você pode definir como o SSMA converte tabelas e índices. Para obter mais informações, confira Configurações do projeto (Conversão) (MySQLToSQL).

Resultados da conversão

A seguinte tabela mostra quais objetos MySQL são convertidos e os objetos SQL Server resultantes:

Objetos MySQL Objetos do SQL Server resultantes
Tabelas com objetos dependentes como índices O SSMA cria tabelas com objetos dependentes. A tabela é convertida com todos os índices e as restrições. Os índices são convertidos em objetos separados do SQL Server.

O Mapeamento de tipo de dados espaciais pode ser executado apenas no nível do nó da tabela.

Para obter mais informações sobre as Configurações de Conversão de Tabela, confira Configurações de conversão
Funções Se a função puder ser convertida diretamente em Transact-SQL, o SSMA criará uma função. Em alguns casos, a função deve ser convertida em um procedimento armazenado. Isso pode ser feito usando a Conversão de Função em Configurações do Projeto. Nesse caso, o SSMA cria um procedimento armazenado e uma função que o chama.

Opções dadas:

- Converter de acordo com as configurações do projeto
- Converter em função
- Converter no procedimento armazenado

Para obter mais informações sobre as Configurações de Conversão de Função, confira Configurações de conversão
Procedimentos Se o procedimento puder ser convertido diretamente em Transact-SQL, o SSMA criará um procedimento armazenado. Em alguns casos, um procedimento armazenado deve ser chamado em uma transação autônoma. Nesse caso, o SSMA cria dois procedimentos armazenados: um que implementa o procedimento e outro usado para chamar o procedimento armazenado de implementação.
Conversão de banco de dados O SSMA não converte diretamente bancos de dados como objetos MySQL em MySQL. Os bancos de dados MySQL são tratados mais como um nome de esquema e todos os parâmetros físicos se perdem na conversão. O SSMA para MySQL usa Mapeamento de Esquemas de Bancos de Dados MySQL para SQL Server (MySQLToSQL) para mapear objetos do banco de dados MySQL para o par de banco de dados/esquema apropriado do SQL Server.
Conversão de gatilho O SSMA cria gatilhos com base nas seguintes regras:

- Os gatilhos BEFORE são convertidos em gatilhos INSTEAD OF T-SQL
- Os gatilhos AFTER são convertidos em gatilhos T-SQL AFTER com ou sem iterações por linhas.
Ver Conversão O SSMA cria exibições com objetos dependentes
Conversão de instrução - Cada objeto de instrução SQL pode conter uma só instrução MySQL (como DDL, DML e outros tipos de instruções) ou bloco BEGIN ... END.
- Em uma conversão de bloco MultiStatement:BEGIN ... END conversão, a instrução SQL também pode conter um bloco BEGIN ... END como um na definição de procedimento, função ou gatilho. Esses blocos devem ser convertidos da mesma forma como estão sendo convertidos para os objetos de instrução MySQL únicos.

Converter objetos de banco de dados MySQL

Para converter objetos de banco de dados MySQL, primeiro selecione os objetos que deseja converter e, em seguida, peça ao SSMA que execute a conversão. Para exibir as mensagens de saída durante a conversão, no menu Exibir, selecione Saída.

Converter objetos MySQL em sintaxe do SQL Server ou do SQL do Azure

  1. No explorador de metadados do MySQL, expanda o servidor MySQL e, em seguida, expanda Bancos de dados.

  2. Selecione os objetos a serem convertidos:

    • Para converter todos os esquemas, marque a caixa de seleção ao lado de Bancos de dados.

    • Para converter ou omitir um banco de dados, marque ou desmarque a caixa de seleção ao lado do nome do banco de dados.

    • Para converter ou omitir uma categoria de objetos, expanda um esquema e marque ou desmarque a caixa de seleção ao lado da categoria.

    • Para converter ou omitir objetos individuais, expanda a pasta de categoria e marque ou desmarque a caixa de seleção ao lado do objeto.

  3. Para converter todos os objetos selecionados, clique com o botão direito do mouse em Bancos de Dados e selecione Converter esquema.

    Você também pode converter objetos individuais ou categorias de objetos clicando com o botão direito do mouse no objeto ou na pasta pai que o contém e selecionar Converter esquema.

Exibir problemas de conversão

Alguns objetos MySQL podem não ser convertidos. Você pode determinar as taxas de sucesso de conversão exibindo o relatório de conversão resumido.

Exibir um relatório de resumo

  1. No Gerenciador de Metadados do MySQL, selecione Bancos de Dados.

  2. No painel à direita, selecione a guia Relatório.

    Este relatório mostra o resumo de avaliação para todos os objetos de banco de dados que foram avaliados ou convertidos. Você também pode exibir um relatório de resumo para objetos individuais:

    • Para exibir o relatório de um esquema individual, selecione o banco de dados no Explorador de Metadados do MySQL.

    • Para exibir o relatório de um objeto individual, selecione o objeto no Explorador de Metadados do MySQL. Os objetos com problemas de conversão têm um ícone de erro vermelho.

Para objetos que falharam na conversão, você pode exibir a sintaxe que resultou na falha de conversão.

Exibir problemas de conversão individuais

  1. No explorador de metadados do MySQL, expanda Bancos de Dados.

  2. Expanda o banco de dados que mostra um ícone de erro vermelho.

  3. Sob o banco de dados, expanda uma pasta que tenha um ícone de erro vermelho.

  4. Selecione o objeto que tem um ícone de erro vermelho.

  5. No painel à direita, selecione a guia Relatório.

  6. Na parte superior da guia Relatório, há uma lista suspensa. Se a lista mostrar Estatísticas, altere a seleção para Origem.

    O SSMA exibe o código-fonte e vários botões imediatamente acima do código.

  7. Selecione o botão Próximo problema. Este é um ícone de erro vermelho com uma seta que aponta para a direita.

    O SSMA destaca o primeiro código-fonte problemático encontrado no objeto atual.

Para cada item que não pôde ser convertido, você precisa determinar o que deseja fazer com esse objeto:

  • É possível modificar o objeto no banco de dados MySQL para remover ou revisar o código problemático. Para carregar o código atualizado no SSMA, você precisa atualizar os metadados. Para obter mais informações, confira Conectar-se ao MySQL (MySQLToSQL)

  • Você pode excluir o objeto da migração. No explorador de metadados do SQL Server ou do SQL do Azure e no explorador de metadados do MySQL, desmarque a caixa de seleção ao lado do item antes de carregar os objetos no SQL Server ou no SQL do Azure e migrar os dados do MySQL.

Confira também

Próximas etapas