在之前遇到一个问题,asp中执行sql对access数据库的备注进行追加,语句如下:
"UPDATE 文件记录 SET 备注=备注+'追加的内容' WHERE 条件"
出现的问题是,如果备注已有内容,语句执行正常,可是当备注为空时,执行语句时就不能追加内容。
经一位大神指点,采用如下的语句:
UPDATE 文件记录 SET 备注=iif( IsNull(备注), "", 备注) +'添加的内容' WHERE 条件
好了,神奇的状况就出现了,原来的问题没有了,可以追加内容,但是,在每次追加了内容后又自动INSERT了一条只包含新追加内容的记录,验证了多少次都是这样。追加的次数越多,记录也就越来越多了
WHY ???
请哪位大神帮帮我!!!SOS
你的asp怎么写的,应该是有插入数据的逻辑被执行了。update本身应该没问题
我们回到原来的问题,update tb set a='备注'+a
这个语句为什么执行不了a为空或者null的情况?是因为这个“+”号,这里sql默认为是数学上的加,而不是字符串拼接,如果需要用到字符窜拼接
那么这里需要使用类型转换,相同类型使用“+”,系统根据类型来处理,所以你这里有两种处理方式。
1.在数据库处处理,类型转换,如果有空或者null先转换成字符类型,然后再拼接
2.在程序中处理,先查询出这个记录,然后获取到这个字段通过字符拼接,最后update
希望能够帮助到您