Microsoft 提供了一组可靠的脚本文件命令,用来执行和控制 SSMA 活动。 控制台应用程序使用本部分中枚举的某些标准脚本文件命令。
项目脚本文件命令
Project 命令可用于创建项目,打开、保存和退出项目。
create-new-project 命令
创建新的 SSMA 项目。
Script
project-folder:指示创建项目的文件夹。project-name:指示项目的名称。 {string}overwrite-if-exists:可选属性。 指示是否应覆盖现有项目。 {boolean}project-type:可选属性。 指示项目类型,即,、sql-server-2016、sql-server-2017sql-server-2019、sql-server-2022或sql-server-2025sql-azure。 默认值为sql-server-2016。
语法示例
<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>" (optional)
/>
默认情况下,属性为 false。
默认情况下,属性为 sql-server-2016。
open-project 命令
打开现有项目。
Script
project-folder指示创建项目的文件夹。 如果指定的文件夹不存在,此命令将失败。 {string}project-name指示项目名。 如果指定的项目不存在,此命令将失败。 {string}
语法示例
<open-project
project-folder="<project-folder>"
project-name="<project-name>"
/>
SSMA for Oracle 控制台应用程序支持向后兼容性。 你将能够打开由以前版本的 SSMA 创建的项目。
save-project 命令
保存迁移项目。
语法示例
<save-project/>
close-project 命令
关闭迁移项目。
语法示例
<close-project
if-modified="<save/error/ignore>" (optional)
/>
数据库连接脚本文件命令
“数据库连接”命令可以帮助连接到数据库。
控制台不支持 UI 的浏览功能。
有关详细信息,请参阅 创建脚本文件。
connect-source-database 命令
连接到源数据库,并加载源数据库的简要元数据,而不是加载所有元数据。
如果无法建立与源的连接,则会生成错误,控制台应用程序将停止进一步执行。
Script
从为服务器连接文件或脚本文件的服务器部分中的每个连接定义的名称属性中,检索服务器定义。
语法示例
<connect-source-database server="<server-unique-name>"/>
force-load-source/target-database 命令
加载源元数据。
非常适合离线处理迁移项目。
如果无法建立与源/目标的连接,则会生成错误,控制台应用程序将停止进一步执行。
Script
需要将一个或多个元数据库节点用作命令行参数。
语法示例
<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 命令不同,此命令并不加载任何元数据。
如果无法(重新)与源建立连接,将会生成错误,并且控制台应用程序将停止进一步执行。
语法示例
<reconnect-source-database server="<server-unique-name>"/>
connect-target-database 命令
连接到目标 SQL Server 数据库,并加载目标数据库的简要元数据,而不是加载所有元数据。
如果无法与目标建立连接,将会生成错误,并且控制台应用程序将停止进一步执行。
Script
从为服务器连接文件或脚本文件的服务器部分中的每个连接定义的名称属性中,检索服务器定义。
语法示例
<connect-target-database server="<server-unique-name>"/>
reconnect-target-database 命令
重新连接到目标数据库,但与 connect-target-database 命令不同,此命令并不加载任何元数据。
如果无法(重新)与目标建立连接,将会生成错误,并且控制台应用程序将停止进一步执行。
语法示例
<reconnect-target-database server="<server-unique-name>"/>
报告脚本文件命令
“报告”命令用来生成有关各种 SSMA 控制台活动的性能报告。
generate-assessment-report 命令
为源数据库生成评估报告。
如果在执行此命令之前未连接到源数据库,将会生成错误,控制台应用程序将退出。
如果在命令执行期间未能连接到源数据库服务器,也会导致控制台应用程序终止。
Script
conversion-report-folder:指定可以存储评估报告的文件夹。 (可选属性)object-name:指定用于生成评估报表的对象(它可以具有单个对象名称或组对象名称)。object-type:指定对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型为“category”)。conversion-report-overwrite:指定是否覆盖评估报告文件夹(如果已存在)。默认值:false。 (可选属性)
write-summary-report-to:指定生成摘要报告的路径。如果只提及文件夹路径,则按名称
AssessmentReport<n>.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>" (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
conversion-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 命令
执行从源架构到目标架构的架构转换。
如果在执行此命令之前未执行源或目标数据库连接,或者在执行命令期间与源或目标数据库服务器的连接失败,则会生成错误,控制台应用程序退出。
Script
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="<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 命令
将源数据迁移到目标。
Script
conversion-report-folder:指定可以存储评估报告的文件夹。 (可选属性)object-name:指定考虑迁移数据的源对象(它可以具有单个对象名称或组对象名称)。object-type:指定对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型为“category”)。conversion-report-overwrite:指定是否覆盖评估报告文件夹(如果已存在)。默认值:false。 (可选属性)
write-summary-report-to:指定生成摘要报告的路径。如果只提及文件夹路径,则按名称
DataMigrationReport<n>.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 命令
源数据库到目标架构的架构映射。
将源数据迁移到目标。
Script
source-schema指定要迁移的源架构。sql-server-schema指定要迁移到其中的目标架构。
语法示例
<map-schema
source-schema="<source-schema>"
sql-server-schema="<target-schema>"/>
可管理性脚本文件命令
可管理性命令可帮助用户将目标数据库对象与源数据库同步。 迁移命令的默认控制台输出设置是“完整”输出报告,不包含详细的错误报告:只包含源对象树根节点的摘要。
synchronize-target 命令
将目标对象与目标数据库同步。
如果对源数据库执行此命令,会遇到错误。
如果在执行此命令之前未执行目标数据库连接,或者与目标数据库服务器的连接在执行命令期间失败,则会生成错误,控制台应用程序将退出。
Script
object-name:指定考虑与目标数据库同步的目标对象(它可以具有单个对象名称或组对象名称)。object-type:指定对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型为“category”)。on-error:指定是将同步错误指定为警告还是错误。 可用于 on-error 的选项:report-total-as-warningreport-each-as-warningfail-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 命令
从数据库刷新源对象。
如果对目标数据库执行此命令,则会生成错误。
Script
需要将一个或多个元数据库节点用作命令行参数。
object-name:指定用于从源数据库刷新的源对象(它可以具有单个对象名称或组对象名称)。object-type:指定对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型为“category”)。on-error:指定是将刷新错误指定为警告还是错误。 可用于 on-error 的选项:report-total-as-warningreport-each-as-warningfail-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 输出记录到控制台或文件。
save-as-script 命令
用于在metabase=target提到的情况下,将对象的脚本保存到指定的文件中。 这是同步命令的替代方法,在该命令中,我们获取脚本并在目标数据库上执行相同的脚本。
Script
需要将一个或多个元数据库节点用作命令行参数。
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/folder>"
overwrite="<true/false>" (optional)
/>
或者:
<save-as-script
metabase="<source/target>"
destination="<file/folder>"
<metabase-object object-name="<object-name>"
object-type="<object-category>"/>
</save-as-script>
convert-sql-statement 命令
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指定要转换的 Oracle 语句,可以使用“;”分隔一个或多个语句。sql-files指定必须转换为 T-SQL 代码的 sql 文件的路径。write-summary-report-to指定生成报表的路径。 如果只提及文件夹路径,则按名称ConvertSQLReport.xml创建文件。 (可选属性)报告创建操作还有两个子类别:
-
report-errors(=“true/false”,默认值为“false”(可选属性)。 -
verbose(=“true/false”,默认值为“false”(可选属性)。
-
Script
需要将一个或多个元数据库节点用作命令行参数。
语法示例
<convert-sql-statement
context="<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)
file-name="<file-name>"
sql="SELECT 1 FROM DUAL;">
<output-window suppress-messages="<true/false>" />
</convert-sql-statement>
或者:
<convert-sql-statement
context="<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>"
destination="<stdout/file>" (optional)
write-converted-sql-to="<file-name/folder-name>"
sql-files="<folder-name>\*.sql" />
或者:
<convert-sql-statement
context="<schema-name>"
conversion-report-folder="<folder-name>"
conversion-report-overwrite="<true/false>"
sql-files="<folder-name>\*.sql" />