wenji643
2015-05-29 03:35
采纳率: 0%
浏览 1.5k

各位高手,请帮小妹解决一个数据库inserted表问题,在线等,谢谢

表ST_ZLZB_R,里面项目STCD站号,TM时间,DRP数据,许多站点会在同时或异时陆续向中心传输数据,如'31128010','2015-05-29 10:30:00.000','12'。其中有两个站点stcd为31128020和31128010,我的想让31128020或者是31128010这两个站来的数据drp这一项是大于24时drp会变为0再插入zlzb表里,例如:31128010站上传'31128010','2015-05-29 10:30:00.000','25',则表ST_ZLZB_R插入的这条数据会变为'31128010','2015-05-29 10:30:00.000','0'。我写了个触发器提示重复项不对,有大神能帮我看看改改吧,谢谢。
ALTER TRIGGER [dbo].[INSERT_RECORD1_31128020]
ON [dbo].[ST_ZLZB_R]
AFTER INSERT
AS
BEGIN
IF EXISTS(SELECT * FROM INSERTED WHERE ((STCD ='31128020') or(STCD ='31128010') )and ( DRP>24.5 ))
INSERT INTO ST_ZLZB_R SELECT '31128020',TM,0,INTV,PDR,DYP,WTH FROM INSERTED where STCD ='31128020'
INSERT INTO ST_ZLZB_R SELECT '31128010',TM,0,INTV,PDR,DYP,WTH FROM INSERTED where STCD ='31128010'
END
或者是能不能编一个触发器,当表ST_ZLZB_R进入的数据drp>24的时候相应的这条数据就不入表,也不耽误其他drp小于24的记录写入表ST_ZLZB_R,要是这样编的话要怎么写触发器?请老师帮我想想办法吧,现在脑子一团浆糊。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_28398447 2015-05-29 04:41

    看一下,是不是违反唯一性约束了,“触发器提示重复项不对”
    另外把操作过程与报错信息粘贴上来,大家才知道发生了什么。

    评论
    解决 无用
    打赏 举报
  • 微wx笑 2015-05-29 05:30

    BEGIN
    IF EXISTS(SELECT * FROM INSERTED WHERE ((STCD ='31128020') or(STCD ='31128010') )and ( DRP>24.5 ))
    INSERT INTO ST_ZLZB_R SELECT '31128020',TM,0,INTV,PDR,DYP,WTH FROM INSERTED where STCD ='31128020'
    INSERT INTO ST_ZLZB_R SELECT '31128010',TM,0,INTV,PDR,DYP,WTH FROM INSERTED where STCD ='31128010'
    END

    这里(STCD ='31128020') or(STCD ='31128010') 用 or 肯定有可能出现重复的情况吧。

    评论
    解决 无用
    打赏 举报
  • 知常曰明 2015-05-29 05:57

    你用的是AFTER INSERT,然后把原主键在插入一遍,肯定重复啊。

    ALTER TRIGGER [dbo].[INSERT_RECORD1_31128020]
    ON [dbo].[ST_ZLZB_R] 
    INSTEAD OF INSERT
    AS 
    BEGIN
    IF EXISTS(SELECT * FROM INSERTED WHERE ((STCD ='31128020') or(STCD ='31128010') )and ( DRP>24.5 ))
    INSERT INTO ST_ZLZB_R 
    SELECT '31128020',
    TM,
    CASE WHEN (STCD ='31128020') or (STCD = '31128010') )and ( DRP>24.5 ) THEN 0 ELSE DRP END,
    INTV,
    PDR,
    DYP,
    WTH 
      FROM INSERTED
    END
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题