以下 xml 说明如何复制视图定义:
<views> <view selection="included"> <name>deptsals</name> <database>MyDb</database> </view> </views>
将 selection 设置为 "included",使用 view 的名称和视图在源系统中所在的 database,将视图定义 deptsals 从源系统复制到目标系统。
存在以下限制:
- 如果要复制的对象在目标数据库中不存在,则会在目标数据库中创建该对象。如果对象在目标数据库中存在,则除非 overwrite_existing_objects 属性被设置为 false,否则将覆盖该对象。这种情况下,将生成创建时错误。
- 您无法重新定位或重命名视图。
- 如果视图定义中的表名称不是完全限定名称,这些表必须位于与源视图数据库同名的数据库中,以避免出错。
例如,以下视图定义包含一个非完全限定的视图名称和表名称︰
CREATE VIEW deptsals AS SELECT department_number AS department FROM employee HAVING salary_amount < 36000;
- 如果目标系统中不存在用以创建视图的表,或者该表未作为作业的一部分进行移动,则尝试在目标系统中创建视图定义时将出错。
- 如果要复制视图定义而不复制基础表,可以使用 DSA。请参阅关于使用 DSA 复制视图、宏和存储过程。
- 在目标系统中创建视图定义时,尝试重命名被引用的表或重新指定这些表的位置将会导致错误。