无道loading
2017-03-02 01:23
采纳率: 66.7%
浏览 1.4k
已采纳

mybatis使用sqlserver触发器

  <select id="t_beforeinsert_on_st_pptn_r" parameterType="java.util.Map">
        ALTER trigger t_beforeinsert_on_st_pptn_r ON st_pptn_r
        INSTEAD OF INSERT
        AS
        BEGIN
        INSERT INTO st_alert_b(STCD,TM,VAL,[LEVEL],[INFO],[STATUS],[VTYPE])
        SELECT  STCD ,
        TM ,
        DRP ,
        [LEVEL]=
        CASE
        WHEN DRP &gt;= #{val1} AND DRP &lt; #{val2} THEN 'I'
        WHEN DRP &gt;= #{val4} AND DRP &lt; #{val5} THEN 'II'
        WHEN DRP &gt;= #{val7} AND DRP &lt; #{val8} THEN 'II'
        WHEN DRP &lt; #{val10} OR DRP &gt; #{val11} THEN '异常'
        END ,
        [INFO]=
        CASE
        WHEN DRP &gt;= #{val1} AND DRP &lt; #{val2} THEN #{val3}
        WHEN DRP &gt;= #{val4} AND DRP &lt; #{val5} THEN #{val6}
        WHEN DRP &gt;= #{val7} AND DRP &lt; #{val8} THEN #{val9}
        WHEN DRP &lt; #{val10} OR DRP &gt; #{val11} THEN #{val12}
        END ,
        [STATUS] =
        CASE
        WHEN DRP &lt; #{val10} OR DRP &gt;= #{val1} THEN '报警'
        END ,
        '降雨量'

        FROM    inserted
        WHERE DRP &lt;#{val10} OR DRP &gt;=#{val1}

        INSERT INTO st_pptn_r(STCD,TM,DRP,[STATUS])
        SELECT  STCD ,
        TM ,
        DRP ,
        [STATUS] = CASE
        WHEN DRP &gt;= #{val10} AND DRP &lt; #{val1} THEN '正常'
        WHEN DRP &gt;= #{val1} AND DRP &lt; #{val8} THEN '报警'
        WHEN DRP &lt; #{val10} OR DRP &gt; #{val11} THEN '异常'
        END
        FROM    inserted
        END
    </select>

         Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'trigger' 附近有语法错误。

报警这块是触发器去做的。现在web端要修改报警参数,前台传设置的值去后台,用mybatis修改触发器

2条回答 默认 最新

相关推荐 更多相似问题