执行 SSMA 控制台 (SybaseToSQL)

Microsoft 提供了一组可靠的脚本文件命令来执行和控制 SSMA 活动。 随后的各节详细介绍了相同的内容。

脚本文件命令

控制台应用程序使用本部分中枚举的某些标准脚本文件命令。

Project命令

Project命令处理创建项目、打开、保存和退出项目。

create-new-project

此命令将创建新的 SSMA 项目。

  • project-folder 指示项目创建的文件夹。

  • project-name 指示项目的名称。 {string}

  • overwrite-if-exists可选属性指示是否应覆盖现有项目。 {boolean}

  • project-type:可选特性。 指示项目类型,即“sql-server-2005”项目或“sql-server-2008”项目或“sql-server-2012”项目或“sql-server-2014”项目或“sql-azure”项目。 默认值为“sql-server-2008”。

语法示例:

<create-new-project  
  
  project-folder="<project-folder>"  
  
  project-name="<project-name>"  
  
  overwrite-if-exists="<true/false>" (optional)  
  
   project-type="<sql-server-2008/sql-server-2005/sql-server-2012/sql-server-2014/sql-azure>"  
/>  

默认情况下,属性“overwrite-if-exists”为 false

默认情况下,属性“ project-type”为 sql-server-2008

open-project

此命令将打开项目。

  • project-folder 指示项目创建的文件夹。 如果指定的文件夹不存在,该命令将失败。 {string}

  • project-name 指示项目的名称。 如果指定的项目不存在,该命令将失败。 {string}

语法示例:

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

注意

适用于 SAP ASE 控制台应用程序的 SSMA 支持向后兼容性。 可以使用它打开以前版本的 SSMA 创建的项目。

save-project

此命令保存迁移项目。

语法示例:

<save-project/>  

close-project

此命令将关闭迁移项目。

语法示例:

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

属性“if-modified”是可选的,默认情况下 忽略

数据库连接命令

数据库连接命令有助于连接到数据库。

注意

connect-source-database

此命令执行与源数据库的连接,并加载源数据库的高级别元数据,但不是所有元数据。

如果无法建立与源的连接,则会生成错误,控制台应用程序将停止进一步执行。

服务器定义是从服务器连接文件或脚本文件的服务器部分为每个连接定义的名称属性中检索的。

语法示例:

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

force-load-source/target-database

此命令加载源元数据,它可用于脱机处理迁移项目。

如果无法建立与源/目标的连接,则会生成错误,控制台应用程序将停止进一步执行。

此命令需要一个或多个元数据库节点作为命令行参数。

语法示例:

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

reconnect-source-database

此命令重新连接到源数据库,但与 connect-source-database 命令不同,不会加载任何元数据。

如果无法 (重新) 与源的连接,则会生成错误,控制台应用程序将停止执行。

语法示例:

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

connect-target-database

此命令连接到目标SQL Server数据库并加载目标数据库的高级别元数据,但不能完全加载元数据。

如果无法建立与目标的连接,则会生成错误,控制台应用程序将停止进一步执行。

服务器定义是从服务器连接文件或脚本文件的服务器部分为每个连接定义的名称属性中检索的。

语法示例:

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

reconnect-target-database

此命令重新连接到目标数据库,但不加载任何元数据,与 connect-target-database 命令不同。

如果无法 (重新) 连接到目标,则会生成错误,控制台应用程序将停止执行。

语法示例:

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

报告命令

报表命令生成有关各种 SSMA 控制台活动性能的报告。

generate-assessment-report

此命令针对源数据库生成评估报告。

如果在执行此命令之前未执行源数据库连接,则会生成错误,控制台应用程序退出。

在执行命令期间无法连接到源数据库服务器,也会导致控制台应用程序终止。

  • conversion-report-folder: 指定可以存储评估报告的文件夹。 (可选属性)

  • object-name: 指定用于评估报表生成 (考虑的对象 () 支持单个对象名称或组对象名称) 。

  • object-type: 指定对象名称属性中调用的对象的类型, (如果指定了对象类别,则对象类型将为“category”) 。

  • conversion-report-overwrite: 指定是否覆盖评估报告文件夹(如果已存在)。

    默认值: false。 (可选属性)

  • write-summary-report-to: 指定将生成报表的路径。

    如果仅提及文件夹路径,则会创建按名称 AssessmentReportn<>.XML的文件。 (可选属性)

    报表创建有两个进一步的子类别:

    • report-errors (=“true/false”,默认值为“false” (可选属性) )

    • verbose (=“true/false”,默认值为“false” (可选属性) )

语法示例:

<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)  
  
/>  

<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>  

迁移命令

迁移命令会将目标数据库架构转换为源架构,并将数据迁移到目标服务器。

convert-schema

此命令执行从源到目标架构的架构转换。

如果在执行此命令之前未执行源或目标数据库连接,或者在执行命令期间与源或目标数据库服务器的连接失败,则会生成错误并退出控制台应用程序。

  • conversion-report-folder: 指定可在其中存储评估报告的文件夹。 (可选属性)

  • object-name: 指定用于转换架构 (支持单个对象名称或组对象名称) 的源对象 () 。

  • object-type: 指定对象名称属性中调用的对象的类型, (如果指定了对象类别,则对象类型将为“category”) 。

  • conversion-report-overwrite: 指定是否覆盖评估报告文件夹(如果已存在)。

    默认值: false。 (可选属性)

  • write-summary-report-to: 指定将生成摘要报告的路径。

    如果仅提及文件夹路径,则创建按名称 SchemaConversionReportn<>.XML的文件。 (可选属性)

    报表创建有两个进一步的子类别:

    • report-errors (=“true/false”,默认值为“false” (可选属性) )

    • verbose (=“true/false”,默认值为“false” (可选属性) )

语法示例:

<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)  
  
/>  

<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

此命令将源数据迁移到目标。

  • object-name: 指定考虑迁移数据 ( (源对象) 支持单个对象名称或组对象名称) 。

  • object-type: 指定在对象名称属性中调用的对象的类型, (如果指定了对象类别,则对象类型将为“category”) 。

  • write-summary-report-to: 指定将生成报表的路径。

    如果仅提及文件夹路径,则创建按名称 DataMigrationReportn<>.XML的文件。 (可选属性)

    报表创建有两个进一步的子类别:

    • report-errors (=“true/false”,默认值为“false” (可选属性) )

    • verbose (=“true/false”,默认值为“false” (可选属性) )

语法示例:

<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>  

<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>"/>  

迁移准备命令

迁移准备命令在源数据库和目标数据库之间启动架构映射。

注意

迁移命令的默认控制台输出设置是“完整”输出报告,没有详细的错误报告:仅源对象树根节点的摘要。

map-schema

此命令提供源数据库的架构映射到目标架构。

  • source-schema 指定要迁移的源架构。

  • sql-server-schema 指定要将源架构迁移到的目标架构。

语法示例:

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

可管理性命令

可管理性命令有助于将目标数据库对象与源数据库同步。

注意

迁移命令的默认控制台输出设置是“完整”输出报告,没有详细的错误报告:仅源对象树根节点的摘要。

synchronize-target

此命令将目标对象与目标数据库同步。

如果此命令针对源数据库执行,则遇到错误。

如果在执行此命令之前未执行目标数据库连接,或者在执行命令期间与目标数据库服务器的连接失败,则会生成错误,控制台应用程序将退出。

  • object-name: 指定考虑与目标数据库 (同步的目标对象 () 支持单个对象名称或组对象名称) 。

  • object-type: 指定在对象名称属性中调用的对象的类型, (如果指定对象类别,则对象类型将为“category”) 。

  • on-error: 指定是将同步错误指定为警告还是错误。 可用选项进行错误:

    • report-total-as-warning

    • report-each-as-warning

    • fail-script

  • report-errors-to: 指定同步操作 (可选属性) 的错误报告的位置。 如果只提供文件夹路径,则创建按名称 TargetSynchronizationReport.XML 的文件。

语法示例:

<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)  
  
/>  

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

<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

此命令从数据库刷新源对象。

如果此命令针对目标数据库执行,则会生成错误。

此命令需要一个或多个元数据库节点作为命令行参数。

  • object-name: 指定用于从源数据库 (刷新的源对象 () 支持单个对象名称或组对象名称) 。

  • object-type: 指定对象名称属性中指定的对象类型, (如果指定对象类别,则对象类型将为“category”) 。

  • on-error: 指定是将刷新错误称为警告还是错误。 可用选项进行错误:

    • report-total-as-warning

    • report-each-as-warning

    • fail-script

  • report-errors-to: 指定刷新操作 (可选属性) 的错误报告的位置。 如果只提供文件夹路径,则创建按名称 SourceDBRefreshReport.XML 的文件。

语法示例:

<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)  
  
/>  

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

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

脚本生成命令

脚本生成命令执行双重任务:它们有助于将控制台输出保存到脚本文件中,并根据指定的参数将 T-SQL 输出记录到控制台或文件。

另存为脚本

此命令用于将对象的脚本保存到 metabase=target 时提到的文件。 这是同步命令的替代方法,即获取脚本并在目标数据库上执行相同的脚本。

此命令需要一个或多个元数据库节点作为命令行参数。

  • object-name: 指定要保存其脚本 (支持单个对象名称或组对象名称) 的对象 () 。

  • object-type: 指定在对象名称属性中调用的对象的类型, (如果指定了对象类别,则对象类型将为“category”) 。

  • metabase: 指定它是源元数据库还是目标元数据库。

  • destination: 指定必须保存脚本的路径或文件夹。 如果未提供文件名,则会提供 (object_name属性值) .out 格式的文件名。

  • overwrite: 如果为 true,则它会覆盖相同的文件名(如果存在)。 它可以 (true/false) 的值。

语法示例:

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

<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

此命令转换SQL语句。

  • context 指定架构名称。

  • destination 指定输出是否应存储在文件中。

    如果未指定此属性,则会在主机上显示转换后的 T-SQL 语句。 (可选属性)

  • conversion-report-folder 指定可存储评估报告的文件夹。 (可选属性)

  • conversion-report-overwrite 指定是否覆盖评估报告文件夹(如果已存在)。

    默认值: false。 (可选属性)

  • write-converted-sql-to指定应存储已转换 T-SQL的文件 (或) 文件夹路径。 指定文件夹路径以及sql-files该属性时,每个源文件都具有在指定文件夹下创建的相应目标 T-SQL 文件。 指定文件夹路径以及sql该属性时,转换后的 T-SQL将写入指定文件夹下的名为 Result.out 的文件。

  • sql 指定要转换的 Sybase sql 语句,可以使用“;”分隔一个或多个语句

  • sql-files指定必须转换为 T-SQL 代码的 sql 文件的路径。

  • write-summary-report-to 指定将生成摘要报告的路径。 如果只提到文件夹路径,则创建按名称 ConvertSQLReport.XML 的文件。 (可选属性)

    摘要报表创建有两个进一步的子类别,即:

    • report-errors (=“true/false”,默认值为“false” (可选属性) ) 。

    • 详细 (=“true/false”,默认值为“false” (可选属性) ) 。

此命令需要一个或多个元数据库节点作为命令行参数。

语法示例:

<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>  

<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"  
  
/>  

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

后续步骤

有关命令行选项的信息,请参阅 SSMA 控制台中的命令行选项 (AccessToSQL)

有关示例控制台脚本文件的信息,请参阅 使用示例控制台脚本文件 (SybaseToSQL)

下一步取决于项目要求: