MS 2010 在将数据库发布到 Web 时访问主键更改?

Posted

技术标签:

【中文标题】MS 2010 在将数据库发布到 Web 时访问主键更改?【英文标题】:MS 2010 Access Primary Key changes upon DB publication to the web? 【发布时间】:2014-08-27 15:19:18 【问题描述】:

我对 MS Access 2010 还很陌生,所以我有一些我不太了解的问题...

我有一个已发布到 Sharepoint 2010 服务器的 MS Access 2010 数据库。我注意到当我将数据库发布到网络时,我的主表(和主窗体)上的主键发生了变化。

我已经用谷歌搜索并在此处搜索以找到答案,但没有人能够回答为什么在将数据库发布到网络时会导致主键发生更改。

例子:

在网络发布之前的主键 ID Num:

                  ID Num: 11111 
                  ID Num: 22222
                  ID Num: 66666

网络发布后的主键 ID Num:

                  ID Num: 1
                  ID Num: 2
                  ID Num: 3

为什么会这样?

我的子表单依靠 PK ID Num 11111、22222、66666 在其他表中显示与其关联的信息,但由于 PK 发生了变化(似乎是自动编号),我的表单无法正确显示数据库的网络发布版本中的信息。

我还注意到我的其他一些数据列在网络发布的数据库中从 ##### 格式更改为 ##,### 格式。这很奇怪。任何帮助将不胜感激。谢谢!

【问题讨论】:

【参考方案1】:

自动编号在发布到 SharePoint 时会发生变化。但是,自动数字是抽象的无意义数字。它们对用户没有任何意义。所以你真的不必关心这些数字是否会改变。

我的意思是,当您将 word 文档加载到计算机内存中时,有时它可能会加载到内存段 456 中,而下次您将该文档加载到内存中时,它可能会加载到 89845 内存位置。因此,您的 word 文档的内存位置也无关紧要,也不是用户可以看到甚至知道甚至关心的东西。

作为用户,自动编号没有任何意义。它们是您真正不必关心的内部管理号码。

阅读十诫中的第 7 条: http://access.mvps.org/access/tencommandments.htm

7 7.如果该字段对您的用户有意义,则不应使用自动编号。

当然,这个问题与 Access 无关,而是关系数据库理论以及整个行业如何运作 30 多年。

如果您有其他相关表,则需要在将数据放大到 SharePoint 之前正确设置关系。只要您的表正确相关,那么在增加数据大小期间更改的任何自动编号也将强制将子表及其外键修改为正确的新 PK。

但是,如果您没有正确设置关系,那么在升级期间,您注意到的 PK 会更改,但您未能关联的表将不会更新,升级器也不会“知道”做出这样的改变。因此,您需要确保正确设置关系。

一旦建立了关系,那么如果 PK 值发生变化,您也不必担心或担心,因为这样任何子记录“FK”也将在上传过程中正确更新。

我的视频中概述了如何设置相关数据和扩大表格:

http://www.youtube.com/playlist?list=PL27E956A1537FE1C5&feature=plcp

选择上面的第二个视频 - 将表格迁移到 office 365

【讨论】:

嗨,Albert,这并没有完全回答我的问题,但它引导我走上了正确的道路,我最终让我的东西按照我想要的方式工作。感谢您的指导!

以上是关于MS 2010 在将数据库发布到 Web 时访问主键更改?的主要内容,如果未能解决你的问题,请参考以下文章

“pyarrow.lib.ArrowInvalid:从时间戳 [ns] 转换为时间戳 [ms] 会丢失数据”在将数据发送到没有架构的 BigQuery 时

在MS访问中的子表单上显示查询结果

ms访问链接表缺少主键

ms access 2010 中的主详细信息子表单

在将 json 反序列化为对象时,使用 jackson 将 asp.net / MS 专有 json Dateformat 转换为 java8 LocalDateTime

node.js 中的 ms 访问数据库连接