当对企业级的高性能的数据库的要求和需求增加时,客户有时需要从文件棗服务器环境的Microsoft Access Jet引擎迁移到客户棗服务器环境的Microsoft SQL Server。随同微软Office 2000发行的Access 2000 Upsizing Wizard(升级向导)可以把Access表格和查询迁移到SQL Server 7.0。如果你使用Access的早期版本,你也可以通过升级到Access 2000,并使用升级向导把你的应用程序移植到SQL SERVER。
如果你不喜欢使用Access 2000和升级向导进行移植,那么这篇文章作为向迁移一个Access应用程序到SQL Server。要迁移Access应用程序,你需要首先把数据迁移到SQL Server 7.0,然后把Access查询移植到数据库或SQL文件,最后是移植应用程序。
●移植中使用的SQL Server工具
SQL Server中的一些工具可以帮助你移植Access数据和应用程序
*SQL Server企业管理器
SQL Server企业管理器允许对SQL Server和SQL Server对象的企业范围的设置和管理。SQL Server企业管理器提供了一个强大的任务安排引擎、管理警告能力、以及内建的复制管理界面。你还可以用SQL Server企业管理器来:
管理登录和用户权限
创建脚本
管理SQL SERVER对象的备份
备份数据库和事务日志
管理表、视图、存储过程、触发器、索引、规则、缺省设定和自定义数据类型
创建全文索引、数据库图表和数据库维护方案
输入输出数据
转换数据
执行不同的Web网络管理任务
缺省情况下,SQL Server企业管理器被SQL Server作为服务器软件的一部分安装在运行Windows NT操作系统的计算机上,同时作为客户软件的一部分安装在运行Windows NT和Windows 95操作系统的计算机上。你很可能要从SQL Server企业管理器的图形用户界面启动数据转换服务(Data Transformation Services,DTS)。
数据转换服务(DTS)
数据转换服务允许你在使用一个OLE DB结构的多个数据源之间输入和输出数据,这样的数据源有Microsoft Excel电子表格,以及在运行SQL Server 7.0的多台计算机之间执行数据库和数据库对象的传输。你还可以用DTS来执行数据转换,以便用它来通过一个在线事务处理系统建立数据仓库和数据商场。
DTS向导允许你交互的创建使用OLE DB和ODBC来进行输入、输出、确认和不同数据的转换的DTS包。向导还允许你在相关数据库之间拷贝计划和数据。
SQL SERVER查询分析器(Server Query Analyzer)
SQL SERVER查询分析器是一个图形化查询工具,它允许你可视化的分析一个查询方案,同时执行多重查询、查看数据、获得索引建议。SQL Server查询分析器提供显示方案(showplan)选项,可以用它来报告SQL Server查询优化器选择的数据获取方案。
SQL Server轮廓(Server Profiler)
SQL SERVER轮廓实时捕捉服务器活动的连续的记录。SQL Server轮廓允许你监控通过SQL Server产生的事件,过滤基于用户指定准则的事件和直接跟踪到显示器、文件或者表的输出。使用SQL Server轮廓,你可以重放先前的捕捉记录。这个工具帮助应用程序开发人员鉴别可能使应用程序性能恶化的事务。当从一个基于文件的体系结构移植一个应用程序到一个基于客户/服务器的体系结构时,它是很有帮助的,因为最后的步骤包含针对应用程序的新客户/服务器环境优化该应用程序的操作。
移动表格和数据
使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:
在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation Services(数据转换服务),然后选择Import Data(导入数据)。
在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。
在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Provider for SQL Server,选择数据库服务器,然后单击必要的验证方式。
在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。
在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。
移植Microsoft Access查询
你必须以这些格式之一迁移你现有的Access查询到SQL Server:
Transact-SQL脚本
Transact-SQL语句通常从数据库程序被调用,但是你可以使用包含在SQL Server 7.0中的SQL Server查询分析器在数据库中直接运行它们。SQL Server查询分析器帮助开发者针对开发数据库测试Transact-SQL语句,或运行Transact-SQL语句执行查询、数据操作(INSERT、UPDATE、DELETE)或数据定义(CREATE TABLE)。
存储过程
开发者可以把大多数源于Access查询(SELECT、INSERT、UPDATE 和 DELETE)的Transact-SQL语句转换为存储过程。用Transact-SQL写的存储过程可以用来封装和标准化你的数据访问,存储过程实际上存储在数据库内。存储过程能带或者不带参数运行,可以从数据库程序调用,也可以从SQL Server查询分析器手动执行。
视图
视图作为虚拟的表格从一个或更多的表格显露指定的行和列。它们允许用户创建查询而不用直接实现那些复杂的底层查询。视图不支持参数。向视图加入一个更多的表格不能使用INSERT、UPDATE、或DELETE语句修改。视图可以用Transact-SQL语句调用,并且也可以在SQL Server查询分析器中的*.scripts中使用。SQL Server视图和SQL-92标准不支持视图中的ORDER BY 子句。
更多关于Transact-SQL、存储过程或者视图的信息,见SQL Server Books Online。
Access查询类型
SQL Server移植选项和注释
一个SELECT语句可以被存储在Transact-SQL文件、存储过程或者视图中。
创建存储过程是实现把数据库应用程序开发同数据库设计的物理实现分离的最好方法。存储过程在一个地方创建,并且被应用程序调用。
如果底层数据库改变了,并且存储过程被仔细的修改以反映这些变化,则对存储过程的调用不会被“中断”。
CROSSTAB
交叉表经常用于摘要报告。
Access交叉表可以在SQL脚本中作为Transact-SQL SELECT语句实现,也可以作为存储过程或者一个视图实现。每次一个查询被列举的时候,数据节点将会重执行,请确保使用最新的数据。
根据不同的数据库需要,也许把交叉表中的数据存储为临时表比较合适(请参看下一行的MAKE TABLE)。临时表只需要很少的资源,但是只提供了创建临时表的时刻,数据的一个照相。
MAKE TABLE
Access的MAKE TABLE可以在Transact-SQL脚本或者存储过程中作为Transact-SQL的CREATE TABLE语句实现。语法如下:
SELECT [ ALL | DISTINCT ]
[ {TOP integer | TOP integer PERCENT} [ WITH TIES] ]