您的位置:程序门 -> db2 -> 数据库开发



as400 触发器


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


as400 触发器
发表于:2007-03-19 23:45:23 楼主
我有一表的触发器,麻烦哪位大侠帮忙解决一下,目前遇到的问题是此表有一条记录,我想删除此记录,总返回失败,sql   system   error.,其   trigger   部分如下:           main-processing   section.
              0000-main.
                      move   old-cmd                                       to     oldmd.
                      move   commit-lvl                                         to     commitlvl.

                      EXEC   sql
                      whenever   sqlerror   go   to   0000-exit
                      end-EXEC.

                      if   commitlvl   =   0
                      EXEC   sql
                      set   transaction   isolation   level   none
                      end-EXEC.
                      if   commitlvl   =   1
                      EXEC   sql
                      set   transaction   isolation   level   read   uncommitted,read   write
                      end-EXEC.
                      if   commitlvl   =   2
                      EXEC   sql
                      set   transaction   isolation   level   read   committed
                      end-EXEC.
                      if   commitlvl   =   3
                      EXEC   sql
                      set   transaction   isolation   level   all
                      end-EXEC.

                      EXEC   sql
                      select   count(*)   into   :nrow   from   table1   where
                      field1   =   :oldmd   or
                      field2   =   :oldmd
                      end-EXEC.

                      if     nrow                                           >         0
                              go   to   0000-exit
                      end-if.

                      EXEC   sql
                      delete   from   table2   where   field1   =   :oldmd
                      end-EXEC.

                      EXEC   sql
                      delete   from   table3   where   field1   =   :oldmd
                      end-EXEC.

                      EXEC   sql
                      delete   from   table4   where   field1   =   :oldmd
                      end-EXEC.


              0000-exit.
                      goback.


由于分数太少了,只能给30分了,在线等


快速检索

最新资讯
热门点击