2

我已经设法在我的计算机上启动并运行 SQL Server 2005 Express,以便在“真实世界”中尝试之前进行一些测试。

我有一个相当大的 MS Access 2007 数据库应用程序,我需要迁移到保留“前端”作为用户界面的 SQL Server。(该应用程序已经是一个具有前端和后端的“拆分”数据库......)

我已经对使用 SSMA 将我的 Access 数据库迁移到 SQL Server Express 进行了一些初步测试。

显然我不明白一些事情,我想我会看看是否有人有任何想法。

从概念上讲,我认为需要将驻留在服务器上的数据库后端迁移到 SQL 服务器,然后前端重新链接到后端中的(现在链接到 SQL)表。

当我使用 SSMA 执行此操作时,我最终会在后端访问文件中重命名表,这些表看起来像“SSMA$myTableNameHere$local”。我还得到下面显示为 ODBC 链接表的原始表名。

到目前为止,一切都很好。

但是....当我从前端(用户界面)重新建立链接表时,我只能看到“SSMA$myTableNameHere$local”名称而不是原始表名。(现在通过 ODBC 链接)我可以链接到“SSMA,,,”表,但这意味着在每个查询、每个表单以及前端的所有代码中更改每个表的名称!不是我真正想做的事情。

所以....

我想我会尝试迁移 FRONT END 看看会发生什么。

我最终得到的是一种情况,基本上它可以工作(有一些我什至还没有看过的严重错误和问题......比如丢失数据等!!!!)我仍然得到“SSMA $myTableNameHere$local" 表和具有原始名称的 ODBC 链接表。

我试图理解......这是否意味着我们将在前端进行迁移,然后将相同的文件复制到每个用户的计算机上?

我有点困惑的另一个主题是我无法通过 ODBC 链接到本地​​机器(即我的计算机)上的 SQL Server Express,因此我无法测试迁移后端然后通过前端链接到表就像我过去在更多的客户端/服务器情况下一样结束。

4

6 回答 6

2

假设 SSMA 将后端的表替换为 SQL Server 的链接,那么您需要做的就是删除前端的原始表链接并后端导入新创建的表链接。然后您可以丢弃后端,因为它不再用于任何事情。

于 2009-03-02T23:34:47.420 回答
1

选择导出,从下拉列表中选择 ODBC,从数据源窗口中选择您的数据源,您已创建,单击确定 将 SQL Server 与 SQL Management Studio Express 一起使用。所有日期都必须有输入掩码;所有文本和备注必须有允许零长度=是毕竟断开所有与Access后端的链接,并建立从SQL.RENAME所有新链接的表到旧名称的链接。使用前端用户界面,直到做一些新的。

于 2011-07-19T19:39:01.697 回答
0

请原谅我对 Acronym Soup 的了解不足,但我假设 SSMA 是 SQL Server 2005“导入数据向导”或 Access 中用于将数据发送到 SQL Server 的向导。您似乎从 Access 将数据发送到 SQL Server - 这是您不想做的事情。您想使用 SQL Server 中的 DTS(现在称为 SSIS 什么的?)将数据导入 SQL Server。然后,您将在 SQL Server 中拥有您的表。然后,只需为 SQL Server 创建您的 DSN 条目并重新链接您的表。一切都应该很好。

总的来说,一般规则是使用 SQL Server 导入 Access 表,而不是使用 Access 将数据发送到 SQL Server。

于 2009-03-02T22:32:55.370 回答
0

我会咬紧牙关,将 SQLServer 端的表重命名为原始数据库中的友好名称。你可能会遇到更少的问题。特别是如果您在 MS Access 端有任何嵌入式代码。

至于你现在将如何部署 MS Access 端,它应该几乎是在用户的工作站上创建 ODBC 链接,并将 MS Access 文件复制到他们的桌面(尽管你可能想要制作一个 MDE(或 2007 等效) 以防止他们意外破坏它)。

于 2009-03-10T18:01:15.143 回答
0

坦率地说,现在您已经迁移了,您需要查看表的设计。根据我的经验,Access 迁移向导在选择正确的数据类型方面做得很差。例如,如果您有一个备注字段,您可能很容易改用 varchar 字段,但我使用的最后一个向导(早期版本)总是将它们转换为文本字段。现在也是考虑一些修复的时候了,例如,如果您过去曾犯过该错误,则将日期文件设为日期时间而不是基于字符。

我永远不会考虑再次使用向导来进行数据迁移,因为我经历过他们做得非常糟糕。

您还会发现,仅仅将数据转换为 SQL Server 通常不足以真正获得任何性能优势。您将需要测试所有查询并考虑是否可以将它们转换为存储过程,而不是如果它们很慢。消除从 Jet SQL 到 T-sql 的转换可以提高性能。另外,t-sql 的许多功能可以提高没有 Access 等效项的性能。Access 在性能调整方面并不重要,但要获得使用 SQL Server 后端进行性能调整的好处,您需要编写特定于 SQL Server 的查询。如果 Access 表没有正确索引,则需要考虑索引。

于 2009-03-10T18:10:18.820 回答
0

使用 odbc 时使用 SSMA 有所不同。如果您的应用程序使用完全访问(后端和前端)。您可以轻松地操作对象绑定表单,使用 DAO 等。没有问题,然后当您需要将数据库迁移到 sql server 时,您可以直接使用 odbc(通过将自己的表链接到 sql server),ssma,...主要问题如何在客户端保留有界表单、查询和代码。如果您直接使用 odbc,您必须自己重新链接所有对象并更改代码,但如果您使用 ssma,您无需执行任何操作,您将继续像以前一样工作。SSMA 的问题是,如果您使用另一个 sql server 在其他地方开发客户端,如何将前端部署到客户端?

于 2009-03-28T10:34:29.107 回答