UPDATE sql没有更新

Posted

技术标签:

【中文标题】UPDATE sql没有更新【英文标题】:UPDATE sql not updating 【发布时间】:2015-05-30 19:01:12 【问题描述】:

我遇到了这个 UPDATE sql 的问题,由于某种原因它没有更新表 NOMI。我没有收到任何类型的错误。我正在使用另一个表中的值更新此表,Me.(...) 正在获取它们的值。当我做Debug.Print 时,我得到了这个:

UPDATE NOMI SET workername = 'Bob', dateassigned = #5/27/2015 8:52:52 PM#, actiondate = #5/30/2015 11:56:43 AM#, caseid = 'BO09999', lastname = 'Smith', firstname = 'Jane', Program = 'Awesome', language = 'English', Status = 'Unprocessed' WHERE ((IsNull([caseid]))<>False)

代码如下:

strSQL = "UPDATE NOMI SET workername = '" & Me.workername & "', 
dateassigned = #" & Me.dateassigned & "#, actiondate = #" & Now & "#, 
caseid = '" & Me.caseid & "', lastname = '" & Me.lastname & "', 
firstname = '" & Me.firstname & "', Program = '" & Me.program & "', 
language = '" & Me.language & "', Status = '" & Me.Status & "' 
WHERE ((IsNull([caseid]))<>False)"

CurrentDb.Execute strSQL

【问题讨论】:

有多少行满足WHERE 条件? SELECT Count(*) AS row_count FROM NOMI WHERE ((IsNull([caseid]))&lt;&gt;False) 注意如果表是空的,你需要INSERT而不是UPDATE 嗨@HansUp,你是对的。我将我的代码调整为一个 INSERT 查询,并且效果很好。谢谢! 【参考方案1】:

这个:

WHERE ((IsNull([caseid]))<>False)

基本意思是:

WHERE caseid is null

这对于表中的任何行可能都不是真的。当然如果caseid是主键,它就不可能是null

【讨论】:

嗨@Andomar,实际上caseid 是Null,这是一个新表,所以表上还没有数据。我正在将此数据添加到表 NOMI 中。 哦!好吧,update 用于更新现有行。如果您尝试插入新行,请使用insert 命令。喜欢insert into YourTable (col1, col2) values 'value1', 'value2'; 你是对的。我现在正在编写 INSERT 查询,但可以在这样的 INSERT 查询中使用 Me.(...) 吗?

以上是关于UPDATE sql没有更新的主要内容,如果未能解决你的问题,请参考以下文章

SQL中使用UPDATE更新数据时一定要记得WHERE子句

update更新一条查询结果

sql update操作结果

更新计划查询时出错:无法更新 update_time

update 更新多个表 SQL

mysql 插入更新在一条sql ON DUPLICATE KEY UPDATE