昨晚差点儿被一个错误弄疯,界面代码简单如下:
sql = @" insert into rcvdat_detail_buf ( pk,
measure_time
from rcvdat_report_buf
where is_processed = 1";
sqlCmd.CommandText = sql;
sqlCmd.ExecuteNonQuery();//此句报错
错误是: device_id_str is not found in where clause …
疯了吗?
跟这玩意有啥关系?
各种调试,各种修改,折腾了近一个小时。忽然顿悟:我这个表里面有trigger,里面用到了修改之前的field,赶紧打开看,果然是啊。修改了就好了。
trigger这种东西真是要谨慎使用啊。看来代码还是改到明处比较好,否则真的要把人逼疯了。这幸亏是自己写的代码,如果是别人写的,数据库里还有trigger,那岂不是冤死了?
因此发现这种莫名其妙的数据库错误,要查查存贮过程,trigger等等地方的代码。
马拉孙 2021-10-01 于泛五地区
祝大家11快乐,出游不堵车。