Compartilhar via


Executando o console SSMA (SybaseToSQL)

A Microsoft fornece um conjunto robusto de comandos de arquivo de script para executar e controlar as atividades do SSMA (Assistente de Migração do SQL Server). As seções seguintes detalham o mesmo.

Comandos de arquivo de script

O aplicativo de console usa determinados comandos de arquivo de script padrão, conforme enumerado nesta seção.

Comandos do projeto

Os comandos do Project lidam com a criação de projetos, abrindo, salvando e saindo de projetos.

create-new-project comando

Esse comando cria um novo projeto SSMA.

  • project-folder indica a pasta do projeto que está sendo criado.

  • project-name indica o nome do projeto. {string}

  • overwrite-if-exists O atributo opcional indica se um projeto existente deve ser substituído. {boolean}

  • project-type: atributo opcional. Indica o tipo de projeto, ou seja, , sql-server-2016sql-server-2017, , sql-server-2019, sql-server-2022, sql-server-2025ou sql-azure. O padrão é sql-server-2016.

Exemplo de sintaxe

<create-new-project
  project-folder="<project-folder>"
  project-name="<project-name>"
  overwrite-if-exists="<true/false>" (optional)
  project-type=="<sql-server-2016 | sql-server-2017 | sql-server-2019 | sql-server-2022 | sql-server-2025 | sql-azure>"
/>

O atributo overwrite-if-exists é false por padrão.

O atributo project-type é sql-server-2016 por padrão.

open-project comando

Esse comando abre o projeto.

  • project-folder indica a pasta do projeto que está sendo criado. O comando falhará se a pasta especificada não existir. {string}

  • project-name indica o nome do projeto. O comando falhará se o projeto especificado não existir. {string}

Exemplo de sintaxe

<open-project
  project-folder="<project-folder>"
  project-name="<project-name>"
/>

Observação

O aplicativo de console do SSMA para SAP ASE dá suporte à compatibilidade com versões anteriores. Você pode usá-lo para abrir projetos criados pela versão anterior do SSMA.

save-project comando

Esse comando salva o projeto de migração.

Exemplo de sintaxe

<save-project/>

close-project comando

Esse comando fecha o projeto de migração.

Exemplo de sintaxe

<close-project
  if-modified="<save/error/ignore>"   (optional)
/>

O atributo if-modified é opcional, ignore por padrão.

Comandos de conexão de banco de dados

Os comandos de Conexão de Banco de Dados ajudam a se conectar ao banco de dados.

O recurso Procurar da interface do usuário não é suportado no console.

Para obter mais informações, consulte Criando arquivos de script.

connect-source-database comando

Esse comando executa a conexão com o banco de dados de origem e carrega metadados de alto nível do banco de dados de origem, mas não todos os metadados.

Se a conexão com a origem não puder ser estabelecida, um erro será gerado e o aplicativo de console interromperá a execução adicional.

A definição do servidor é recuperada do atributo de nome definido para cada conexão na seção do servidor do arquivo de conexão do servidor ou do arquivo de script.

Exemplo de sintaxe

<connect-source-database  server="<server-unique-name>"/>

force-load-source/target-database comando

Esse comando carrega os metadados de origem e é útil para trabalhar no projeto de migração offline.

Se a conexão com a origem/destino não puder ser estabelecida, um erro será gerado e o aplicativo de console interromperá a execução adicional.

Esse comando requer um ou vários nós de metabase como parâmetro de linha de comando.

Exemplo de sintaxe

<force-load metabase="<source/target>" >
  <metabase-object object-name="<object-name>"/>
</force-load>

reconnect-source-database comando

Esse comando se reconecta ao banco de dados de origem, mas não carrega metadados diferentemente do comando connect-source-database.

Se a (re)conexão com a origem não puder ser estabelecida, um erro será gerado e o aplicativo de console interromperá a execução.

Exemplo de sintaxe

<reconnect-source-database  server="<server-unique-name>"/>

connect-target-database comando

Esse comando se conecta ao banco de dados de destino no SQL Server e carrega metadados de alto nível, mas não todo o metadado.

Se a conexão com o destino não puder ser estabelecida, será gerado um erro e o aplicativo de console interromperá a execução adicional.

A definição do servidor é recuperada do atributo de nome definido para cada conexão, na seção do servidor do arquivo de conexão do servidor ou no arquivo de script.

Exemplo de sintaxe

<connect-target-database  server="<server-unique-name>"/>

reconnect-target-database comando

Esse comando se reconecta ao banco de dados de destino, mas não carrega metadados, ao contrário do comando connect-target-database.

Se a (re)conexão com o destino não puder ser estabelecida, um erro será gerado e o aplicativo de console interromperá a execução.

Exemplo de sintaxe

<reconnect-target-database  server="<server-unique-name>"/>

Comandos de relatório

Os comandos de relatório geram relatórios sobre o desempenho de várias atividades do Console do SSMA.

generate-assessment-report comando

Esse comando gera relatórios de avaliação no banco de dados de origem.

Se a conexão do banco de dados de origem não for executada antes da execução desse comando, um erro será gerado e o aplicativo de console será encerrado.

A falha ao se conectar ao servidor de banco de dados de origem durante a execução do comando também resulta no encerramento do aplicativo de console.

  • conversion-report-folder: especifica a pasta na qual o relatório de avaliação pode ser armazenado. (atributo opcional)

  • object-name: especifica os objetos considerados para a geração de relatório de avaliação (dá suporte a nomes de objeto individuais ou a um nome de objeto de grupo).

  • object-type: especifica o tipo do objeto chamado no atributo de nome do objeto (se a categoria de objeto for especificada, o tipo de objeto será "category").

  • conversion-report-overwrite: especifica se a pasta de relatório de avaliação deve ser substituída se ela já existir.

    Valor padrão: false. (atributo opcional)

  • write-summary-report-to: especifica o caminho no qual o relatório é gerado.

    Se apenas o caminho da pasta for mencionado, o arquivo por nome AssessmentReport<n>.xml será criado. (atributo opcional)

    A criação do relatório tem duas subcategorias adicionais:

    • report-errors (="true/false", com o padrão como "false" (atributos opcionais))

    • verbose (="true/false", com o padrão como "false" (atributos opcionais))

Exemplo de sintaxe

<generate-assessment-report
  object-name="<object-name>"
  object-type="<object-category>"
  write-summary-report-to="<file-name/folder-name>"             (optional)
  verbose="<true/false>"                       (optional)
  report-errors="<true/false>"                 (optional)
  assessment-report-folder="<folder-name>"          (optional)
  conversion-report-overwrite="<true/false>"   (optional)
/>

Ou:

<generate-assessment-report
  assessment-report-folder="<folder-name>"            (optional)
  conversion-report-overwrite="<true/false>"     (optional)
>
<metabase-object object-name="<object-name>"
   object-type="<object-category>"/>
</generate-assessment-report>

Comandos de migração

Os comandos de migração convertem o esquema de banco de dados de destino no esquema de origem e migram dados para o servidor de destino.

convert-schema comando

Esse comando executa a conversão de esquema da origem para o esquema de destino.

Se a conexão de banco de dados de origem ou de destino não for executada antes de executar esse comando ou a conexão com o servidor de banco de dados de origem ou de destino falhar durante a execução do comando, um erro será gerado e o aplicativo de console será encerrado.

  • conversion-report-folder: especifica a pasta na qual o relatório de avaliação pode ser armazenado. (atributo opcional)

  • object-name: especifica os objetos de origem considerados para converter esquema (dá suporte a nomes de objeto individuais ou a um nome de objeto de grupo).

  • object-type: especifica o tipo do objeto chamado no atributo de nome do objeto (se a categoria de objeto for especificada, o tipo de objeto será "category").

  • conversion-report-overwrite: especifica se a pasta de relatório de avaliação deve ser substituída se ela já existir.

    Valor padrão: false. (atributo opcional)

  • write-summary-report-to: especifica o caminho no qual o relatório de resumo é gerado.

    Se apenas o caminho da pasta for mencionado, o arquivo por nome SchemaConversionReport<n>.xml será criado. (atributo opcional)

    A criação do relatório tem duas subcategorias adicionais:

    • report-errors (="true/false", com o padrão como "false" (atributos opcionais))

    • verbose (="true/false", com o padrão como "false" (atributos opcionais))

Exemplo de sintaxe

<convert-schema
  object-name="<object-name>"
  object-type="<object-category>"
  write-summary-report-to="<file-name/folder-name>"     (optional)
  verbose="<true/false>"                          (optional)
  report-errors="<true/false>"                    (optional)
  conversion-report-folder="<folder-name>"             (optional)
  conversion-report-overwrite="<true/false>"      (optional)
/>

Ou:

<convert-schema
  conversion-report-folder="<folder-name>"         (optional)
  conversion-report-overwrite="<true/false>"> (optional)
  <metabase-object object-name="<object-name>"
    object-type="<object-category>"/>
</convert-schema>

migrate-data comando

Esse comando migra os dados de origem para o destino.

  • object-name: especifica os objetos de origem considerados para migrar dados (dá suporte a nomes de objeto individuais ou a um nome de objeto de grupo).

  • object-type: especifica o tipo do objeto chamado no atributo object-name (se a categoria de objeto for especificada, o tipo de objeto será "category").

  • write-summary-report-to: especifica o caminho no qual o relatório é gerado.

    Se apenas o caminho da pasta for mencionado, o arquivo por nome DataMigrationReport<n>.xml será criado. (atributo opcional)

    A criação do relatório tem duas subcategorias adicionais:

    • report-errors (="true/false", com o padrão como "false" (atributos opcionais))

    • verbose (="true/false", com o padrão como "false" (atributos opcionais))

Exemplo de sintaxe

<migrate-data
  write-summary-report-to="<file-name/folder-name>"
  report-errors="<true/false>" verbose="<true/false>">
    <metabase-object object-name="<object-name>"/>
    <metabase-object object-name="<object-name>"/>
    <metabase-object object-name="<object-name>"/>
    <data-migration-connection
      source-use-last-used="true"/source-server="<server-unique-name>"
      target-use-last-used="true"/target-server="<server-unique-name>"/>
</migrate-data>

Ou:

<migrate-data
  object-name="<object-name>"
  object-type="<object-category>"
  write-summary-report-to="<file-name/folder-name>"
  report-errors="<true/false>" verbose="<true/false>"/>

Comando Preparação de Migração

O comando Preparação de Migração inicia o mapeamento de esquema entre os bancos de dados de origem e de destino.

Observação

A configuração padrão de saída do console para os comandos de migração é um relatório de saída 'Completo', sem relatórios de erro detalhados: apenas um resumo no nó raiz da árvore de objetos de origem.

map-schema comando

Esse comando fornece o mapeamento do esquema do banco de dados de origem para o de destino.

  • source-schema Especifica o esquema de origem a ser migrado.

  • sql-server-schema Especifica o esquema de destino para o qual o esquema de origem é migrado.

Exemplo de sintaxe

<map-schema source-schema="<source-schema>"
sql-server-schema="<target-schema>"/>

Comandos de gerenciabilidade

Os comandos manageability ajudam a sincronizar os objetos de banco de dados de destino com o banco de dados de origem.

Observação

A configuração padrão de saída do console para os comandos de migração é um relatório de saída 'Completo', sem relatórios de erro detalhados: apenas um resumo no nó raiz da árvore de objetos de origem.

synchronize-target comando

Esse comando sincroniza os objetos de destino com o banco de dados de destino.

Se esse comando for executado no banco de dados de origem, um erro será encontrado.

Se a conexão de banco de dados de destino não for executada antes de executar esse comando ou a conexão com o servidor de banco de dados de destino falhar durante a execução do comando, um erro será gerado e o aplicativo de console será encerrado.

  • object-name: especifica os objetos de destino considerados para sincronização com o banco de dados de destino (dá suporte a nomes de objeto individuais ou um nome de objeto de grupo).

  • object-type: especifica o tipo do objeto chamado no atributo de nome do objeto (se a categoria de objeto for especificada, o tipo de objeto será "category").

  • on-error: especifica se os erros de sincronização devem ser especificados como avisos ou erros. Opções disponíveis em caso de erro:

    • report-total-as-warning

    • report-each-as-warning

    • fail-script

  • report-errors-to: especifica o local do relatório de erros para a operação de sincronização (atributo opcional)

    Se apenas o caminho da pasta for fornecido, um arquivo pelo nome será TargetSynchronizationReport.xml criado.

Exemplo de sintaxe

<synchronize-target
object-name="<object-name>"
on-error="<report-total-as-warning/report-each-as-warning/fail-script>" (optional)
  report-errors-to="<file-name/folder-name>"        (optional)
/>

Ou:

<synchronize-target
  object-name="<object-name>"
  object-type="<object-category>"/>

Ou:

<synchronize-target>
  <metabase-object object-name="<object-name>"/>
  <metabase-object object-name="<object-name>"/>
  <metabase-object object-name="<object-name>"/>
</synchronize-target>

refresh-from-database comando

Esse comando atualiza os objetos de origem do banco de dados.

Se esse comando for executado no banco de dados de destino, um erro será gerado.

Esse comando requer um ou vários nós de metabase como parâmetro de linha de comando.

  • object-name: especifica os objetos de origem considerados para atualização do banco de dados de origem (dá suporte a nomes de objeto individuais ou a um nome de objeto de grupo).

  • object-type: especifica o tipo do objeto especificado no atributo de nome do objeto (se a categoria de objeto for especificada, o tipo de objeto será "category").

  • on-error: especifica se os erros de atualização devem ser chamados como avisos ou erros. Opções disponíveis em caso de erro:

    • report-total-as-warning
    • report-each-as-warning
    • fail-script
  • report-errors-to: especifica o local do relatório de erros para a operação de sincronização (atributo opcional)

    Se apenas o caminho da pasta for fornecido, um arquivo pelo nome será SourceDBRefreshReport.xml criado.

Exemplo de sintaxe

<refresh-from-database
  object-name="<object-name>"
  on-error="<report-total-as-warning/
             report-each-as-warning/
             fail-script>"              (optional)
  report-errors-to="<file-name/folder-name>"        (optional)
/>

Ou:

<refresh-from-database
  object-name="<object-name>"
  object-type="<object-category>" />

Ou:

<refresh-from-database>
  <metabase-object object-name="<object-name>"/>
</refresh-from-database>

Comandos de Geração de Script

Os comandos geração de script executam tarefas duplas: eles ajudam a salvar a saída do console em um arquivo de script e registram a saída T-SQL no console ou em um arquivo com base no parâmetro especificado.

save-as-script comando

Usado para salvar em arquivo os scripts dos objetos mencionados quando metabase=target. Essa é uma alternativa ao comando de sincronização, no qual obtemos os scripts e executamos o mesmo no banco de dados de destino.

Esse comando requer um ou vários nós de metabase como parâmetro de linha de comando.

  • object-name: especifica os objetos cujos scripts devem ser salvos (dá suporte a nomes de objeto individuais ou a um nome de objeto de grupo).

  • object-type: especifica o tipo do objeto chamado no atributo de nome do objeto (se a categoria de objeto for especificada, o tipo de objeto será "category").

  • metabase: especifica se é a metabase de origem ou de destino.

  • destination: especifica o caminho ou a pasta na qual o script deve ser salvo. Se o nome do arquivo não for fornecido, um nome de arquivo no formato (object_name attribute value).out será fornecido.

  • overwrite: Se for true, ele substituirá o mesmo nome de arquivo se existir. Ele pode ter os valores (verdadeiro/falso).

Exemplo de sintaxe

<save-as-script
  metabase="<source/target>"
  object-name="<object-name>"
  object-type="<object-category>"
  destination="<file-name/folder-name>"
  overwrite="<true/false>"   (optional)
/>

Ou:

<save-as-script
  metabase="<source/target>"
  destination="<file-name/folder-name>"
    <metabase-object object-name="<object-name>"
                     object-type="<object-category>"/>
</save-as-script>

convert-sql-statement comando

Esse comando converte a instrução SQL.

  • context Especifica o nome do esquema.

  • destination Especifica se a saída deve ser armazenada em um arquivo.

    Se esse atributo não for especificado, a instrução T-SQL convertida será exibida no console. (atributo opcional)

  • conversion-report-folder Especifica a pasta na qual o relatório de avaliação pode ser armazenado. (atributo opcional)

  • conversion-report-overwrite Especifica se a pasta de relatório de avaliação deve ser substituída se ela já existir.

    Valor padrão: false. (atributo opcional)

  • write-converted-sql-to especifica o caminho do arquivo ou pasta onde o T-SQL convertido deve ser armazenado. Quando um caminho de pasta é especificado junto com o atributo, cada arquivo de origem sql-files tem um arquivo T-SQL de destino correspondente criado na pasta especificada. Quando um caminho de pasta é especificado junto com o sql atributo, o T-SQL convertido é gravado em um arquivo chamado Result.out na pasta especificada.

  • sql especifica as instruções sql do Sybase a serem convertidas, uma ou mais instruções podem ser separadas usando um ";"

  • sql-files especifica o caminho dos arquivos sql que precisam ser convertidos em código T-SQL.

  • write-summary-report-to especifica o caminho em que o relatório de resumo é gerado. Se apenas o caminho da pasta for mencionado, o arquivo por nome ConvertSQLReport.xml será criado. (atributo opcional)

    A criação do relatório de resumo tem duas subcategorias adicionais, ou seja:

    • report-errors (="true/false", com o padrão como "false" (atributos opcionais)).

    • detalhado (="true/false", com padrão como "false" (atributos opcionais)).

Esse comando requer um ou vários nós de metabase como parâmetro de linha de comando.

Exemplo de sintaxe

<convert-sql-statement
       context="<database-name>.<schema-name>"
        conversion-report-folder="<folder-name>"
        conversion-report-overwrite="<true/false>"
        write-summary-report-to="<file-name/folder-name>"   (optional)
        verbose="<true/false>"   (optional)
        report-errors="<true/false>"   (optional)
        destination="<stdout/file>"   (optional)
        write-converted-sql-to ="<file-name/folder-name>"
        sql="SELECT 1 FROM DUAL;">
    <output-window suppress-messages="<true/false>" />
</convert-sql-statement>

Ou:

<convert-sql-statement
         context="<database-name>.<schema-name>"
         conversion-report-folder="<folder-name>"
         conversion-report-overwrite="<true/false>"
         write-summary-report-to="<file-name/folder-name>"   (optional)
         verbose="<true/false>"   (optional)
         report-errors="<true/false>"   (optional)
         destination="<stdout/file>"   (optional)
         write-converted-sql-to ="<file-name/folder-name>"
         sql-files="<folder-name>\*.sql"
/>

Ou:

<convert-sql-statement
         context="<database-name>.<schema-name>"
         conversion-report-folder="<folder-name>"
         conversion-report-overwrite="<true/false>"
         sql-files="<folder-name>\*.sql"
/>