Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 频繁合并同一Access数据库(每日/每周)_Sql_Database_Ms Access_Sharepoint - Fatal编程技术网

Sql 频繁合并同一Access数据库(每日/每周)

Sql 频繁合并同一Access数据库(每日/每周),sql,database,ms-access,sharepoint,Sql,Database,Ms Access,Sharepoint,我需要在2个脱机位置使用一个Access(2007)数据库,然后将所有数据返回到一个数据库中。有些人建议我使用SharePoint,但经过一些尝试和挫折之后,我怀疑这是否真的是最好的方法。 是否可以通过更新查询等自动化方式来管理此问题 我有26个表,但只有14个需要经常更新。我使用autonumber创建parentkey,并对链接的表使用级联更新。如果您的数据能够处理它,那么对于需要频繁更新的表,可能最好使用更自然的键。也就是说,理想情况下,您可以通过该记录中的某些列组合唯一地标识一条记录。两

我需要在2个脱机位置使用一个Access(2007)数据库,然后将所有数据返回到一个数据库中。有些人建议我使用SharePoint,但经过一些尝试和挫折之后,我怀疑这是否真的是最好的方法。 是否可以通过更新查询等自动化方式来管理此问题


我有26个表,但只有14个需要经常更新。我使用autonumber创建parentkey,并对链接的表使用级联更新。

如果您的数据能够处理它,那么对于需要频繁更新的表,可能最好使用更自然的键。也就是说,理想情况下,您可以通过该记录中的某些列组合唯一地标识一条记录。两个数据库中的自动编号可以而且很可能会相互影响,因此,当您确实合并基于旧自动编号的任何记录时,都需要正确映射。这是可以做到的,但有点痛苦。最好从一开始就避免这一切

至于使用Sharepoint(我认为建议是将表替换为列表,而不仅仅是将accdb放在SP上),它在可以创建的索引类型和可以建立的关系方面有很多限制。也许你的数据足够简单,可以接受这个。我还不能证明这一举动是合理的


最终您的问题的答案是是可以通过插入/更新查询和一些VBA(可能很多,取决于表层次结构的复杂程度)来管理同步。你需要对两个人更新一条记录保持警惕。你需要想出一些办法来解决冲突

我已经在考虑自然键了,很好。会出现哪些冲突?不存在的密钥和数据很容易通过插入查询添加。我不确定您存储的是什么数据,但即使使用自然密钥,冲突也会增加。优势在于,冲突发生的地方非常明显。您可能希望手动处理这些问题。自动处理冲突的东西听起来像是灾难的秘方。至于插入新记录,同样,您要非常小心。您不希望在不首先查看新域值(空格、拼写差异)的情况下自动插入新域值。我认为自动插入新的数据记录是一件有效的事情。毕竟,这可能就是全部目的。我认为如果数据库(tablet1、tablet2)转到某个平板电脑,我会重命名它,然后自动(VBA)将此名称添加到自然键,因此一旦它同步回masterDB,就不会有冲突。域值是自动创建的或通过查找列表创建的,因此不会出现任何问题。