weixin_39472492
weixin_39472492
2020-05-06 09:46
采纳率: 83.3%
浏览 195

求大神!!! 一条sql语句追加数据,出现了更神奇的状况

在之前遇到一个问题,asp中执行sql对access数据库的备注进行追加,语句如下:

"UPDATE 文件记录 SET 备注=备注+'追加的内容' WHERE 条件"

出现的问题是,如果备注已有内容,语句执行正常,可是当备注为空时,执行语句时就不能追加内容。

经一位大神指点,采用如下的语句:

UPDATE 文件记录 SET 备注=iif( IsNull(备注), "", 备注) +'添加的内容' WHERE 条件

好了,神奇的状况就出现了,原来的问题没有了,可以追加内容,但是,在每次追加了内容后又自动INSERT了一条只包含新追加内容的记录,验证了多少次都是这样。追加的次数越多,记录也就越来越多了

WHY ???

请哪位大神帮帮我!!!SOS

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • caozhy
    已采纳

    你的asp怎么写的,应该是有插入数据的逻辑被执行了。update本身应该没问题

    点赞 评论
  • mango_love
    mango_love 2020-05-06 09:52

    我们回到原来的问题,update tb set a='备注'+a
    这个语句为什么执行不了a为空或者null的情况?是因为这个“+”号,这里sql默认为是数学上的加,而不是字符串拼接,如果需要用到字符窜拼接
    那么这里需要使用类型转换,相同类型使用“+”,系统根据类型来处理,所以你这里有两种处理方式。
    1.在数据库处处理,类型转换,如果有空或者null先转换成字符类型,然后再拼接
    2.在程序中处理,先查询出这个记录,然后获取到这个字段通过字符拼接,最后update
    希望能够帮助到您

    点赞 评论

相关推荐