使用SQL Server在Access中编写冲突

时间:2013-03-07 12:11:14

标签: sql-server ms-access

在这个网站上还有其他问题与我要问的问题非常接近,但我的情况略有不同(如果有人知道存在的问题完全涵盖了这个问题,那么请指导我)。

我有Windows Server 2003,它上面有SQL Server 2000(我认为)。在那个SQL Server上,我有5个数据库,其中有四个我目前正在使用。现在,我还有一台笔记本电脑(win xp pro),其上安装了企业管理器的副本,我通过笔记本电脑维护SQL数据库,没有任何问题(通过网络等)。

我还在笔记本电脑上使用ODBC链接访问Access中的'前端',这样我就可以使用Access中的表单来查看SQL中表的内容。这个设置几周没有问题(因为我实际创建了数据库)。

然而,我遇到的问题是,我能够改变两个数据库中的信息,而不是其他两个。当我尝试在两个非工作的中的任何一个中进行更改时,我得到“写入冲突 - 此记录已被其他用户更改...”,但我是唯一的用户!我正在使用SQL Server登录,每次打开Access前端时都必须输入。这里发生了什么?我已经阅读了有关时间戳字段的内容,但我不明白为什么我可能要实现或实际上如何实现?这个问题让我疯了!

2 个答案:

答案 0 :(得分:2)

您修改的表是否在2个无法正常工作的数据库中具有正确的主键?我问的原因是,如果Access无法确定您正在更新的确切记录(由于缺少主键或其他唯一字段),它通常会给出“写冲突”错误。正如您所提到的,当出现此问题时,人们通常会建议时间戳字段,但根据我的经验,这只会在处理Access和MySQL而不是SQL Server时有所帮助。

此外,您使用的是哪个版本(和Service Pack)?

答案 1 :(得分:0)

如果您有任何BIT字段,如果您正在对表进行更新,则必须在BIT字段中插入一个值,IE" 0"进入每个领域。它们不能为空。