当我尝试使用update语句更新具有字符数据类型的列时。它说0行更新并且不会抛出任何错误。由于列的数量很多,我尝试使用where子句使用特定列...它更新行。
问题是当所有列都用于更改值时,它会返回0行更新。我必须在vba代码/工具中自动化它,以便它可以使用所有行进行更新。我确定了用于未更新值的列,但没有返回错误。
它只说:
0 rows updated
。
但该特定列(数据类型...十进制)有什么问题。
请帮忙。我搜索了整个互联网但没有结果。
答案 0 :(得分:0)
如果您尝试更新数据库中的特定值而只更新该特定值,则可能会出现舍入问题。这意味着您看到的值不是存储的确切值。
因此,您可以尝试使用特定范围更新它。
首先选择您要更新的内容:
select rowid from table_1
where val_x between <x>-<upsilon> and <x>+<upsilon>;
如果您只有一个值,则更新 ;
update table_1 set val_x = <new_val>
where val_x between <x>-0.001 and <x>+0.001
;
(否则,如果超过1个值,则<upsilon>
减少到0.0001
等等。)
希望有所帮助