把Access数据库移植到SQL SERVER7.0

2016-02-19 19:56 5 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享把Access数据库移植到SQL SERVER7.0,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - 编程语言 】

  当对企业级的高性能的数据库的要求和需求增加时,客户有时需要从文件?服务器环境的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 th e Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。

   在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider 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)的Tr ansact-SQL语句转换为存储过程。用Transact-SQL写的存储过程可以用来封装和标准化你的数据访问,存储过程实际上存储在数据库内。存储过程能带或者不带参数运行,可以从数据库程序调用,也可以从SQL Server查询分析器手动执行。

   视图 视图作为虚拟的表格从一个或更多的表格显露指定的行和列。它们允许用户创建查询而不用直接实现那些复杂的底层查询。视图不支持参数。向视图加入一个更多的表格不能使用INSERT、UPDATE、或DELETE语句修改。视图可以用Transact-S QL语句调用,并且也可以在SQL Server查询分析器中的*.scripts中使用。SQL S erver视图和SQL-92标准不支持视图中的ORDER BY子句。

   更多关于Transact-SQL、存储过程或者视图的信息,见SQL Server Books Onlin e。

   Access查询类型

   SQL Server移植选项和注释

   一个SELECT语句可以被存储在Transact-SQL文件、存储过程或者视图中。

   创建存储过程是实现把数据库应用程序开发同数据库设计的物理实现分离的最好方法。存储过程在一个地方创建,并且被应用程序调用。

   如果底层数据库改变了,并且存储过程被仔细的修改以反映这些变化,则对存储过程的调用不会被“中断”。

   CROSSTAB 交叉表经常用于摘要报告。

   Access交叉表可以在SQL脚本中作为Transact-SQL SELECT语句实现,也可以作为存储过程或者一个视图实现。每次一个查询被列举的时候,数据节点将会重执行,请确保使用最新的数据。

   根据不同的数据库需要,也许把交叉表中的数据存储为临时表比较合适(请参看下一行的MAKE TABLE)。临时表只需要很少的资源,但是只提供了创建临时表的时刻,数据的一个照相。

   MAKE TABLE

   Access的MAKE TABLE可以在Transact-SQL脚本或者存储过程中作为Transact-SQ L的CREATE TABLE语句实现。语法如下:

   SELECT [ ALL | DISTINCT ]

   [ {TOP integer | TOP integer PERCENT} [ WITH TIES] ]

   [ INTO new_table ]

   [ FROM {} [,…n] ]

   [ WHERE ]

   [ GROUP BY [ALL] group_by_expression [,…n]

   [ WITH { CUBE | ROLLUP } ]

   CREATE TABLE mytable (low int, high int)

   UPDATE

   UPDATE语句可以被存储在Transact-SQL脚本中;但是,实现UPDATE语句的推荐方法是创建一个存储过程。

   APPEND

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

   APPEND语句可以被存储在Transact-SQL脚本中;但是,实现APPEND语句的推荐方法是创建一个存储过程。

   DELETE

   DELETE语句可以被存储在Transact-SQL脚本中;但是,实现DELETE语句的推荐方法是创建一个存储过程。

   把微软Access查询迁移到存储过程和视图

   每个Access查询必须被置入这集合语句的集合:

   CREATE PROCEDURE AS

   SELECT, UPDATE, DELETE, INSERT, CREATE TABLE statement from Microsof t Access

   GO

   CREATE VIEW AS

   GO

   对每个Access查询:

   打开Access,然后在SQL Server上打开SQL Server查询分析器。

   在Access中,在数据库窗口,单击Queries(查询)标签,然后单击Design(设计)。

   在View(视图)菜单上,单击SQL。

   粘贴整个查询到SQL Server查询分析器。

   测试语法和并且为以后使用保存Transact-SQL语句,或者在数据库中运行语句。

   你可以有选择的保存Transact-SQL为脚本。

   移植微软Access查询到Transact-SQL脚本

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

   大多数Access查询应该被翻译成存储过程和视图。然而,应用程序开发人员很少运行一些语句可以作为一个Transact-SQL脚本存储,这是一个文件扩展名为.sql 的文本文件。这些文件可以从SQL Server查询分析器中运行。

   如果你计划把你的一些Access查询转换为.sql文件,考虑把Transact-SQL语句分成几个脚本,具体操作要根据如何使用这些语句而定。例如,你可以把那些必须以同一频率运行的Transact-SQL语句组合到一个脚本中。另一个脚本可能包含那些只能在特定条件下运行的Transact-SQL语句。另外,那些必须按一定的顺序执行的Transact-SQL语句应该组合在一个离散脚本中。

   要把一个Access语句转换为Transact-SQL文件:

   复制该语句到SQL Server查询分析器。

   使用蓝色的检查标记图标解析语句。

   如果合适就执行语句。

   MAKE TABLE 语句在SQL Server中有几种转换方式。开发人员可以创建下面任意一种:

   视图 视图创建一个动态的、提供最新信息的虚拟临时表格的效果。这是I/O密集的,因为每次列举一个查询时就要重新加入数据表。

   临时表。

   临时表为一个连接用户会话创建一个数据快照。你可以创建局部和全局临时表。

   局部临时表只能在当前会话中是可视的;全局临时表对所有会话都是可视的。局部临时表的前缀用单一的数字符号命名(#table_name),全局临时表的前缀用两个数字符号命名(##table_name)。对临时表的查询运行得很快,因为它们通常只使用一个表格而不是动态的连接几个表来获得一个结果集。

   关于临时表的更多信息,见SQL Server Books Online。

   在SQL SERVER7.0中数据变换服务(DTS)允许你通过创建包实现临时表创建的标准化、自动化和定期计划执行。

   例如,当你移植Access 2.0 Northwind示例数据库时,为季度数据报告而创建的交叉表被转换为一个视图或者是在常规基础上创建临时表的数据转换。关于DTS的更多信息,参见SQL Server Books Online。

   附加设计考虑

   下面是一些当你把你的Access应用程序移植到SQL Server时应该考虑的问题。

来源:http://www.tulaoshi.com/n/20160219/1622284.html

延伸阅读
在发现了global.asa+.htr的bug之后,往往sql server数据库的ID和密码以明文的形式暴露在我们眼前,(写程序时候应该注意啦!)我试过几个国内知名的网站,象蚁盟的, 都可以得到他的数据库密码。于是如何进一步取得数据库的控制权限成为我们关注的问题。 有的朋友常常有了密码确连不进对方主机,下面我来说说连接时候需要注意的问题和...
标签: SQLServer
使用数据库的过程中,由于断电或其他原因,有可能导致数据库出现一些小错误,比如检索某些表特别慢,查询不到符合条件的数据等.出现这些情况的原因,往往是因为数据库有些损坏,或索引不完整. 在ACCESS中,有个修复数据库的功能可以解决这个问题,在SQL企业管理器,没有这个功能,要用语句来完成,下面就介绍如何用 SQL 语句完成数据库的修复,需要注意的是...
标签: SQLServer
  开发者常常以Access作为原型或者用Access来开发不是很关键的应用程序。但是,随着公司业务的增长,要解决的问题会变得越来越复杂,Access环境可能无法满足需要。目前,Access 2002的.mdb和.adp文件都将一个数据库的长度限制在2 GB以内。这意味着几乎每个Access和SQL Server开发者最终都要将一个Access数据库升迁成一个SQL Server数据库...
1、SQL Server、Access数据库 这都微软的数据库,都是一家人,基本的操作都是差不多,常采用如下分页语句: PAGESIZE:每页显示的记录数 CURRENTPAGE:当前页号 数据表的名字是:components 索引主键字是:id 以下是引用片段: selecttopPAGESIZE*fromcomponentswhereidnotin (selecttop(PAGESIZE*(CURRENTPAGE...
标签: MySQL mysql数据库
因工作需要,要将存放在sql server数据库中的数据全部导入到mysql数据库中,在网上搜集相关资料,找到两种方法,现在分别谈谈对他们的看法。 第一种是安装mysql ODBC,利用sql server的导出功能,选择mysql数据源,进行数据的直接导出,这种方法很简便,但是针对实际应用有很多弊端,最主要体现就是数据类型问题,首先,sql server数据库中的...

经验教程

138

收藏

20
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部