Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 server 使用SSMA将Access 2007数据库应用程序迁移到SQL Server 2005-问题_Sql Server_Ms Access_Ms Access 2007_Sql Server Migration Assi - Fatal编程技术网

Sql server 使用SSMA将Access 2007数据库应用程序迁移到SQL Server 2005-问题

Sql server 使用SSMA将Access 2007数据库应用程序迁移到SQL Server 2005-问题,sql-server,ms-access,ms-access-2007,sql-server-migration-assi,Sql Server,Ms Access,Ms Access 2007,Sql Server Migration Assi,我已经设法让SQLServer2005Express在我的计算机上正常运行,以便在“现实世界”中尝试之前进行一些测试 我有一个相当大的MS Access 2007数据库应用程序,需要迁移到SQL Server 保留“前端”作为用户界面。(应用程序“”已经是一个“拆分”数据库 有前端和后端……) 我已经对使用SSMA将Access数据库迁移到SQL进行了一些初步测试 服务器快车 很明显,有些事情我不明白,我想我会看看有没有人懂 任何想法 从概念上讲,我认为需要发生的是 驻留在服务器上的数据库需要迁

我已经设法让SQLServer2005Express在我的计算机上正常运行,以便在“现实世界”中尝试之前进行一些测试

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

我已经对使用SSMA将Access数据库迁移到SQL进行了一些初步测试 服务器快车

很明显,有些事情我不明白,我想我会看看有没有人懂 任何想法

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

当我使用SSMA执行此操作时,我会在后端使用重命名的表 访问类似“SSMA$myTableNameHere$local”的文件。我也 获取下面显示为ODBC链接表的原始表名

到目前为止还不错

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

所以

我想我应该尝试迁移前端,看看会发生什么

我最终得到的是一种情况,基本上它是有效的(有 一些严重的错误和问题,我甚至还没有看到…像 缺少数据等等!!)我仍然得到“SSMA$myTableNameHere$local” 表和具有原始名称的ODBC链接表

我在努力理解。。。。。。这是否意味着我们会做同样的事情 在前端进行迁移,然后将相同的文件复制到每个用户的 电脑

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

请原谅我对首字母缩略词Soup缺乏了解,但我假设SSMA是SQL server 2005“导入数据向导”或Access中将数据发送到SQL server的向导。似乎是您从Access向SQL Server发送了数据—这是您不想做的事情。您希望使用SQL Server中的DTS(现在称为SSI或其他什么?)将数据导入SQL Server。然后将在SQL Server中创建表。然后,只需为SQL Server创建DSN条目并重新链接表。一切都会好起来的


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

假设SSMA使用指向SQL Server的链接替换后端中的表,您只需删除前端中的原始表链接,然后从后端导入新创建的表链接。然后可以放弃后端,因为它不再用于任何用途。

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


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

坦白地说,现在您已经迁移了,你需要看看你桌子的设计。根据我的经验,访问迁移向导在选择正确的数据类型方面做得很差。例如,如果您有一个memo字段,您可能很容易使用varchar字段,但是我使用的上一个向导(早期版本)总是将它们转换为文本字段。现在也是时候考虑一些修复,例如,如果你曾经犯过这个错误,就把DeaFieldDeaTimes改为基于字符的。 我再也不会考虑使用向导来做数据迁移了,我自己也经历过非常糟糕的情况。p>
您会发现,仅仅将数据转换为SQL Server通常不足以真正获得任何性能优势。您将需要测试所有查询,并考虑是否可以将它们转换为存储的PROC,而不是它们是否慢。消除从Jet-SQL到T-SQL的转换可以提高性能。此外,t-sql还有许多功能可以提高性能,而这些功能没有访问等价物。Access在性能调优方面并不重要,但要获得使用SQL Server后端进行性能调优的好处,需要编写特定于SQL Server的查询。如果访问表没有正确索引,则需要考虑索引

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

我确实使用ODBC将所有表从Access DB后端逐个传输到了sql server 2005