在Access / SQL(写入冲突)中编辑记录问题

前端之家收集整理的这篇文章主要介绍了在Access / SQL(写入冲突)中编辑记录问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我使用的sql DB被迁移到新的服务器之后出现了一个问题.现在,当尝试在Access(表单或表格)中编辑记录时,它说:WRITE CONFLICT:此记录自您开始编辑之后已被其他用户更改…

这是否有任何不明显的原因.没有人使用服务器,我已经禁用了表上的任何触发器.我刚刚发现这是与NULL的事情有关的记录,没有一个是可以的,但是一些没有NULL的行.可以用索引来做吗?如果相关,我最近开始每天上传BULK,而不是一次使用Access中的INSERT INTO.

解决方法

原因可能在于您正在编辑的表单中打开了有问题的记录.如果您在编辑会话期间以编程方式更改记录,然后尝试关闭表单(从而尝试保存记录),则访问说该记录已被其他人更改.

在以编程方式更改记录之前保存表单.
形式如下:

'This saves the form's current record
Me.Dirty = False

'Now,make changes to the record programmatically

更新1

确保sql-Server表具有主键以及时间戳列.

时间戳列有助于确定自上次选择之后记录是否已被编辑.访问通过检查所有字段(如果没有时间戳可用)执行此操作.如果没有时间戳列,可能这对null条目不起作用(请参阅我的UPDATE 2).

时间戳实际上存储行版本号而不是时间.

添加时间戳列之后,不要忘记在访问中刷新表链接,否则Access不会看到它. (注意:Microsoft的升级向导在将Access表转换为sql Server服务器表时创建时间戳列.)

更新2

根据@ AlbertD.Kallal,这可能是这里描述的一个零位问题:KB280730.如果使用位字段,将其默认值设置为0,并将之前输入的任何NULL替换为0.我通常使用BIT DEFAULT 0 NOT NULL布尔字段最符合布尔值的想法.

知识库文章说使用* .adp而不是* .mdb;然而,Microsoft discontinued the support for Access Data Projects (ADP) in Access 2013.

猜你在找的MsSQL相关文章