升迁拆分的Access数据库

时间:2008-10-08 19:16:07

标签: sql-server ms-access split upsizing

我需要升级拆分的Access数据库,即当前在两个mdb文件(前端和后端)之间拆分的数据库。我看到许多网页本质上都说“运行升迁向导”。我的第一个非常基本的问题:

我应该在我的前端mdb还是我的后端mdb中运行此向导?

我假设我不想链接主mdb - >后端mdb - > sql server。我应该在后端mdb上运行向导,然后在前端mdb中更改链接表以指向sql server而不是后端mdb?如果是这样,这是怎么做到的?当我右键单击并进入链接表管理器中的前端表(链接到后端md)时,它似乎只让我选择一个新的mdb文件。

5 个答案:

答案 0 :(得分:4)

我同意你的第一个猜测:你需要在后端mdb上运行向导。

一旦在SQL Server中,也如您所猜测的那样,您将需要链接前端以使用SQL Server数据。一种方法是为新的SQL Server数据库设置ODBC数据源,并在链接表管理器中选择它。

  1. 打开数据源(ODBC)快捷方式:在XP专业版中,这位于“管理工具”下的“控制面板”中。 (如果您没有看到它,则可能无权创建数据源,因此您必须与网络人员一起执行此操作。)这将打开ODBC管理器。
  2. 在“文件DSN”选项卡上,单击“添加...”。您将看到可用驱动程序列表。选择SQL Server,然后单击下一步。 (如果仅在您的计算机上使用前端,则可以改为创建系统DSN。)
  3. 查找常用位置并命名您的数据源。
  4. 单击“下一步”和“完成”。这将设置数据源的第一部分,并将打开SQL Server数据源向导。
  5. 命名数据源,然后选择放置大型后端数据库的服务器。
  6. 根据需要更改其余设置(您可能不需要更改太多,但这些更改的范围可能需要第二个问题),然后单击“完成”。
  7. 设置完数据源后,获取外部数据应该可以选择将其作为源。 (在2007年,您可以从“外部数据”功能区到达。可以在“更多”下找到ODBC数据源。)

    根据马特的后续问题进一步扩展:

    如何做到这一点是一种设计选择。我建议升级后端mdb,因为这样可以保留你在Access中拥有的任何形式;如果您的数据在SQL Server中,我认为这不是转换。

    在升迁之前,您的表已链接到后端数据库,并且链接表管理器显示了链接。设置ODBC数据源并链接这些表后,它将显示该链接。您将以两种不同的方式查看链接,因为它们实际上是不同类型的链接(Access与ODBC),即使链接在前端mdb中看起来相同。

答案 1 :(得分:1)

就我个人而言,我发现升迁向导在确定正确的数据类型方面做得非常糟糕。我将使用我需要的数据类型在SQL Server中自己创建表,然后将数据从Access移动到现有表。另外,当你真的需要小数时,你可以使用varchar或float来使用文本数据。

移动数据后,我将删除Access表并链接到SQL Server表。

如果没有数据库的备份副本,请不要做任何事情。

答案 2 :(得分:0)

作为标准偏执的问题,我只需制作现有文件的备份副本并在前端运行升迁向导。如果发生任何不良后果,只需通过覆盖备份副本来恢复更改。

答案 3 :(得分:0)

更新前端,它将在后端表升级之前导入后端表。我一周前做了这个,结果很成功。

但是,任何使用-1而不是Yes的查询都将失败。没有主键的表上的任何完整表删除都将失败,并且您将通过仅使用传递SQL查询来截断表而获得与此不同的行为。 trunc将删除所有行,Access版本可能会留空。

此外,您需要在具有自动编号列数据类型的表上打开记录集的任何位置包含dbSeeChanges。 SQL将这些更改为Identity数据类型,然后在尝试打开表之前抱怨。祝你好运。

答案 4 :(得分:0)

一切尽在前端

您可以简单地将表导出到 SQL Server。

然后您可以删除前端中的链接表。

然后将连接链接到 SQL Server

检查:

  • 当你打开表格时,你会得到记录
  • 运行所有查询
  • 编译你的代码

您还必须考虑如何发布前端。如果您使用的是 dsn 文件,则需要将其提供给每个用户。

您需要确定最终用户如何访问 SQL Server。您是否使用存储在连接中的用户名和密码进行单次登录?

您也可以将后端数据库拆分为多个 Access DB 并在前端链接它们。