执行 SSMA 控制台 (AccessToSQL)

Microsoft 提供一组可靠的脚本文件命令和命令行选项,用来执行和控制 SQL Server 迁移助手 (SSMA) 活动。 随后的各节详细介绍相同的内容。

项目脚本文件命令

Project 命令可用于创建项目,打开、保存和退出项目。

create-new-project

创建新的 SSMA 项目。

属性 默认值 说明 类型
project-folder 指示创建项目的文件夹。 字符串
project-name 指示项目的名称。 字符串
overwrite-if-exists false 可选属性,指定是否应覆盖现有项目。 布尔
project-type sql-server-2008 可选特性。 以下选项可用于 project-type

sql-server-2005
sql-server-2008
sql-server-2012
sql-server-2014
sql-server-2016
sql-azure
字符串

语法示例

<create-new-project
  project-folder="<project-folder>"
  project-name="<project-name>"
  overwrite-if-exists="<true | false>"
  project-type="<project-type>"
/>

open-project

打开现有项目。

属性 默认值 说明 类型
project-folder 指示创建项目的文件夹。 如果指定的文件夹不存在,此命令将失败。 字符串
project-name 指示项目的名称。 如果指定的项目不存在,此命令将失败。 字符串

语法示例

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

注意

SSMA For Access 控制台应用程序支持后向兼容性。 可以打开由旧版本的 SSMA 创建的项目。

save-project

保存迁移项目。

语法示例

<save-project/>

close-project

关闭迁移项目。

属性 默认值 说明 类型
if-modified ignore 用于指定行为的可选属性。 可能的值为:saveerrorignore 字符串

语法示例

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

属性“if-modified”为可选的,默认情况下为 ignore

数据库连接脚本文件命令

“数据库连接”命令可以帮助连接到数据库。

控制台不支持 UI 的浏览功能。

连接到 SQL Azure 时,windows-authentication端口参数不适用。

有关详细信息,请参阅创建脚本文件 (AccessToSQL)

connect-source-database

执行与源数据库的连接,并加载源数据库的简要元数据,而不是加载所有元数据。

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

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

语法示例

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

load-access-database

用于加载访问数据库文件。

属性 默认值 说明 类型
database-file 指定 Access 数据库的路径。 字符串

语法示例

<load-access-database  database-file="<Access-database>"/>

-或-

<load-access-database>
  <access-database database-file="<Access-database1>"/>
  <access-database database-file="<Access-database2>"/>
</load-access-database>

force-load 源或目标数据库

加载源元数据。 非常适合离线处理迁移项目。

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

需要将一个或多个 metabase 节点用作命令行参数。

属性 默认值 说明 类型
object-name 指定对象的名称。 字符串
metabase 指定 Access 数据库的路径。 可能的值为:sourcetarget 字符串

语法示例

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

-或-

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

reconnect-source-database

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

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

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

语法示例

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

connect-target-database

连接到目标 SQL Server 或 SQL Azure 数据库,并加载目标数据库的简要元数据,而不是加载所有元数据。

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

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

语法示例

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

reconnect-target-database

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

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

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

语法示例

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

报告脚本文件命令

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

generate-assessment-report

为源数据库生成评估报告。

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

如果在命令执行期间未能连接到源数据库服务器,也会导致控制台应用程序结束。

脚本

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

  • object-name:指定在生成评估报告时考虑使用的对象(它也可以具有单独的对象名或组对象名)。

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

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

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

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

    如果只提及文件夹路径,将使用名称 AssessmentReport<n>.XML 创建文件。 (可选属性)

    报告创建操作还有两个子类别:

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

语法示例

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

-或-

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

迁移脚本文件命令

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

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

convert-schema

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

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

脚本

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

  • object-name:指定在转换架构时考虑使用的源对象(它可以具有单独的对象名称或组对象名称)。

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

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

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

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

    如果只提到文件夹路径,则会按名称 SchemaConversionReport<n>.XML 创建文件。 (可选属性)

    报告创建操作还有两个子类别:

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

语法示例

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

-或-

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

migrate-data

将源数据迁移到目标。

脚本

  • object-name:指定在迁移数据时考虑使用的源对象(它也可以具有单独的对象名或组对象名)。

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

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

    如果只提及文件夹路径,将使用名称 DataMigrationReport<n>.XML 创建文件。 (可选属性)

    报告创建操作还有两个子类别:

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

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

语法示例

<migrate-data
  write-summary-report-to="<filepath/folder>"
  report-errors="true" verbose="true">
    <metabase-object object-name="ssma.TT1"/>
    <metabase-object object-name="ssma.TT2"/>
    <metabase-object object-name="ssma.TT3"/>
    <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="ssma.Tables"
  object-type="category"
  write-summary-report-to="<filepath/folder>"
  report-errors="true" verbose="true"/>

此命令将源 (Access) 表链接到目标表。

脚本

语法示例

<link-tables>
  <metabase-object object-name="AccessDatabase.table1" object-type="Tables"/>
  <metabase-object object-name="AccessDatabase.table2" object-type="Tables"/>
</link-tables>

-或-

<link-tables>
  <metabase-object object-name="AccessDatabase.Tables" object-type="category"/>
</link-tables>

此命令取消源 (Access) 表与目标表的链接。

脚本

语法示例:

<unlink-tables>
  <metabase-object object-name="AccessDatabase.table1" object-type="Tables"/>
  <metabase-object object-name="AccessDatabase.table2" object-type="Tables"/>
</unlink-tables>

-或-

<unlink-tables>
  <metabase-object object-name="AccessDatabase.Tables" object-type="category"/>
</unlink-tables>

迁移准备脚本文件命令

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

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:指定是将同步错误指定为警告还是错误。 可用于 on-error 的选项:

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

语法示例

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

-或-

<synchronize-target
  object-name="ssma.dbo.Procedures"
  object-type="category"/>

-或-

<synchronize-target>
  <metabase-object object-name="ssma.dbo.TT1"/>
  <metabase-object object-name="ssma.dbo.TT2"/>
  <metabase-object object-name="ssma.dbo.TT3"/>
</synchronize-target>

refresh-from-database

从数据库刷新源对象。 如果对目标数据库执行此命令,则会生成错误。

脚本

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

  • object-name:指定在从源数据库刷新时考虑使用的源对象(它也可以具有单独的对象名或组对象名)。

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

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

    • report-total-as-warning
    • report-each-as-warning
    • fail-script
  • report-errors-to:指定刷新操作的错误报告的位置(可选属性),如果仅提供文件夹路径,将使用名称 SourceDBRefreshReport.XML 创建文件。

语法示例

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

-或-

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

-或-

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

脚本生成脚本文件命令

脚本生成命令可帮助将控制台输出保存在脚本文件中。

save-as-script

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

脚本

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

  • object-name:指定要保存脚本的对象。 (它可以具有单独的对象名称或组对象名称。)

  • object-type:指定 object-name 属性中指定的对象的类型。 如果指定了对象类别,则对象类型为 category

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

  • destination:指定必须保存脚本的路径或文件夹。 如果未提供文件名,则文件名采用格式 (object_name attribute value)。

  • overwrite:如果为 true,则在存在相同文件名时进行覆盖。 它可以具有值 (true/false)。

语法示例

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

-或-

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