Triggers db2使用ant脚本执行触发器

Triggers db2使用ant脚本执行触发器,triggers,db2,Triggers,Db2,我有一个包含触发器的sql文件。我想使用Ant脚本执行此文件: <target name="exec-sql-proc_db2" depends="init"> <property name="project.sql.dir" value="${project.metadata.dir}/sql" /> <property name="triggerFile" value="${project.sql.dir}/triggers_db2.sql" />

我有一个包含触发器的sql文件。我想使用Ant脚本执行此文件:

<target name="exec-sql-proc_db2" depends="init">
  <property name="project.sql.dir" value="${project.metadata.dir}/sql" />
  <property name="triggerFile" value="${project.sql.dir}/triggers_db2.sql" />
  <echo message="${triggerFile}" />
  <sql rdbms="DB2" driver="com.ibm.db2.jcc.DB2Driver" 
       url="jdbc:db2://localhost:50000/project:currentSchema=mySchema;" 
       userid="root" password="root" 
       classpath="C:\projects\myProject\lib\db2jcc.jar" 
       src="${triggerFile}" 
       onerror="${sql.onerror}" 
       keepformat="true" delimiter="/" />
</target>

设置模式mySchema

我尝试了这部分代码,解决了我的问题

你说的“触发器未执行”是什么意思?只有在运行相应的DML(insert,update,delete)语句时才会“执行”触发器。我在一个名为product的表上有一个触发器,当我更新此产品中的一行时,我将其插入到product_历史记录中,此触发器保存在一个文件中,我使用此脚本执行触发器,然后当我更新表product中的一行时,表product_History中未插入任何行您是否检查触发器是否已实际创建?您是否检查触发器是否已启用/有效/激活?张贴触发器的完整代码和您使用的DML语句。在产品更新后创建或替换触发器产品历史记录,在每行引用新的AS N开始插入productHistory(id_h,id_PRODUCT,name)(id_h_seq.nextval,N.id_PRODUCT,N.name);ENDDo不在注释中发布代码。编辑你的问题。
CREATE or REPLACE TRIGGER PRODUCT_HISTORY_AFTER_UPDATE
AFTER UPDATE ON PRODUCT 
REFERENCING NEW AS N 
FOR EACH ROW 
BEGIN 
   INSERT INTO productHistory ( id_h, id_product , name) values (id_h_seq.nextval, N.id_product , N.name ); 

    END 
/
<sql rdbms="DB2" driver="com.ibm.db2.jcc.DB2Driver" 
       url="jdbc:db2://localhost:50000/project:currentSchema=mySchema;" 
       userid="root" password="root" 
       classpath="C:\projects\myProject\lib\db2jcc.jar" 
       src="${triggerFile}" 
       onerror="${sql.onerror}" 
        delimiter="/" >

SET SCHEMA mySchema
</sql>