虽然 DSA 不会在复制整个数据库时自动从源中复制触发器,但您可以为目标中的关联表指定触发器。
在复制触发器时,以下情形将导致错误:
- 与触发器关联的源表不包括在要复制的表中
- 与触发器关联的表在目标上进行重命名或重新定位
- 不要使用 AFTER 作为 action_time 标记的值。
- 打开包含该作业的作业定义信息的 parameters.xml 文件。
- 创建 triggers 区域。
- 将 selection="included" 属性添加到该区域中的 trigger 元素。
- 指定 database 和 subject_table_database 元素的名称。
- 指定 table 元素中的表名称。
- 指定 name 元素中的触发器名称。
- 使用 action_time enabled="YES" 标记指示何时发生触发器操作。
在以下示例中,触发器 DBName.RaiseTrig 将复制到目标中。
<database selection="included"> <name>DBName</name> </database> <triggers> <trigger selection="included"> <database>DBName</database> <subject_table_database>DBName</subject_table_database> <table>PPIOrders</table> <name>RaiseTrig</name> <action_time enabled="YES">AFTER</action_time> </trigger> </triggers>