在作业创建 XML 中使用 compare_ddl 元素可指定要对单个对象、单个数据库中的所有表和视图或作业中的所有表和视图执行的 DDL 比较。
compare_ddl 标志在对象、数据库或作业级别始终为可选标志;无需明确设置值。缺省情况下,在指定要复制的单个表或视图时会启用 DDL 比较,而在复制整个数据库时会对表和视图禁用此比较。
- 打开包含该作业的作业定义信息的 parameters.xml 文件。
- 在作业创建 XML 中的适当位置添加 compare_ddl 元素,然后指定所需的值:
选项 说明 true 对单个对象或者数据库或作业中的所有表和视图执行 DDL 比较。 false 不对单个对象或者数据库或作业中的所有表和视图执行 DDL 比较。 unspecified 使用缺省值,除非指定其他更高的优先级值。 以下示例将根据要设置 DDL 比较标志的范围级别显示 compare_ddl 元素的位置。
表示例:对 Table1 执行 DDL 比较(缺省),而不对 Table2 执行 DDL 比较。
<table selection="included"> <name>Table1</name> </table> <table selection="included"> <name>Table2</name> <compare_ddl>false</compare_ddl> </table>
视图示例:在复制视图时执行 DDL 比较。请注意,copyData 元素也必须设置为 true。
<views> <view selection="included" copyData="true"> <name>deptsals</name> <database>MyDb</database> <view_data_table> <target_table>TargetTable</target_table> <target_database>TargetDb</target_database> </view_data_table> <compare_ddl>true</compare_ddl> </view> </views>
数据库示例:对数据库中的所有表和视图执行 DDL 比较。
<database selection="all"> <name>MyDB</name> <compare_ddl>true</compare_ddl> </database>
数据库中的表示例:在复制整个数据库时,对 MyDB 数据库中除 MyDB.PPIOrders 表以外的表执行 DDL 比较。
<database selection="all"> <name>MyDB</name> <compare_ddl>true</compare_ddl> <table selection="included"> <name>PPIOrders</name> <compare_ddl>false</compare_ddl> </table> </database>
作业示例:对作业中的所有表和视图执行 DDL 比较。
<job_name>MyJob</job_name> ... <overwrite_existing_objects>true</overwrite_existing_objects> <force_utility>tptapi</force_utility> <compare_ddl>true</compare_ddl> <database> ... </database>