文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页技术开发数据库技巧 → 使用SQL Server数据转换服务升迁Access数据库

使用SQL Server数据转换服务升迁Access数据库

时间:2004/12/2 1:33:00来源:本站整理作者:蓝点我要评论(0)

开发者常常以Access作为原型或者用Access来开发不是很关键的应用程序。但是,随着公司业务的增长,要解决的问题会变得越来越复杂,Access环境可能无法满足需要。目前,Access 2002的.mdb和.adp文件都将一个数据库的长度限制在2 GB以内。这意味着几乎每个Access和SQL Server开发者最终都要将一个Access数据库升迁成一个SQL Server数据库


由于升迁已成为极为常见的一个任务,所以Access配套提供了一个“升迁向导”。它虽然能完成这个工作,但操作过程并不简单。SQL Server与Access的几处不兼容的地方是该向导无法处理的。你或许不知道,SQL Server的“数据转换服务”(Data Transformation Services,DTS)也能升迁一个Access数据库。下面让我们比较这两个向导,并体验如何使用DTS来升迁一个实际Access数据库。这样一来,你在遇到一个升迁任务时,就能选择最有效的方式。



比较Access升迁向导和DTS


Access升迁向导(AUW)在Access内部工作,能将数据拷贝到SQL Server表。相反,DTS将来自一个Access数据库的数据拷贝到SQL Server表中。注意,你可将数据从一个文本文件或者一个OLE DB数据源(其中自然包括Access数据库)导入SQL Server。导入文件的同时,还能对数据进行转换。


DTS的功能非常齐全,有的开发者认为它比AUW强得多,理由是:


可在导入数据时更改列(字段)属性。
在导入期间创建查询,限制实际导入的数据。
但AUW也有DTS不具备的一个优点,那就是它能将一个Access前端链接到SQL Server数据。DTS则不然,它只能导入数据,你不能将导入的数据链接到一个现有的前端。


 


使用DTS导入/导出向导


可采取几种方式来执行DTS:


在Windows【开始】菜单中,选择【Microsoft SQL Server】,再选择【导入和导出数据】。
运行企业管理器,连接到想导入数据的一个特定的服务器数据库,然后从【工具】菜单中选择【数据转换服务】|【导入数据】。在一个现有的数据库中导入数据时,可使用这个选项。
在企业管理器中,连接到要导入数据的服务器,再右击【数据转换服务】节点。选择【所有任务】|【导入数据】。向导最开始会显示一个提示性屏幕。请单击【下一步】开始操作。


指定数据源


升迁Access的第一步是指定数据源以及包含了待导入数据的实际文件。在本例中,请选择Microsoft Access作为数据源,再找到Northwind.mdb数据库(Access配套提供的示范数据库)。它通常在以下文件夹中:
LocalDrive:\Program Files\Microsoft Office\Office10\Samples


注意,你可对任意Access数据库进行升迁。升迁不会对实际的.mdb文件及其数据产生任何影响。


如图A所示,本例不要求你输入密码和用户名。但是,在操作一个安全数据库时,则可能必须管理管理员用户名和密码。换言之,在操作这种数据库之前,你必须获得管理权限。请单击【下一步】继续。


图A



 


指定数据源和文件。如果操作的是安全数据库,还需要输入管理员用户名和密码


相反,如果使用的是AUW,它首先会要求你选择新建一个SQL Server数据库,或者选择将SQL Server数据链接到一个Access前端。如前所述,DTS没有提供链接选项。



选择目的



在下一个屏幕中,要为导入的数据选择一个目的(地)。你可选择当前服务器上的任何数据库,也可以新建一个数据库(本例采取的是第二种做法)。不要更改“目的”设置,虽然有几个选项可供选择,但本例的“目的”就是【用于SQL Server的Microsoft OLE DB提供程序】。


虽然能更改服务器,但本例不要求你这样做。除此之外,还应该保留【使用Windows身份验证】设置。只有SQL Server 2000才支持Windows身份验证。当然,如果你的安全设置有所区别,那么也可以相应地修改那个选项。


从【数据库】下拉列表中选择【<新建>】。随后会出现【创建数据库】对话框。请输入新数据库的名称,Northwind的数据将导入这个数据库中,如图B所示。命名一个工作数据库时,务必遵循你的公司的命名规范。单击【确定】后,DTS会自动更新【数据库】下拉列表中的名称。单击【确定】继续。


图B



指定新的数据库名称

限制要导入的数据



指定了Access数据源,并新建了一个SQL Server数据库之后,就可开始将数据从数据源导入新的SQL Server数据库(NorthwindonlocalSS)。但是,也许不能在一个会话中完成全部工作。虽然每次都能拷贝任意数量的表。但假如你需要用一个查询来限制数据,每次就只能操作那一个表。幸运的是,额外的工作并不需要花多少时间。


 


首先,让我们创建一个查询来限制“产品”表中的数据,从而开始我们的拷贝过程。具体地说,我们只想拷贝那些活动的(而不是中止的)的产品。为此,请选择【用一条查询指定要传输的数据】,如图C所示,再单击【下一步】。


图C



可拷贝几个表,或者拷贝一个查询的结果

 


图D的SQL语句将要导入的记录限制为那些没有中止的产品。使用查询生成器来显示你要包括的表和列。对于像这样的简单语句来说,查询生成器可能有点儿大材小用,但对于较复杂的语句来说,如果指定了几个列的名称,查询生成器就能有效地防止你犯错。单击【分析】来验证语句的有效性。输入了正确的SQL语句后,请单击【下一步】。


图D



输入对数据进行限制的SQL语句

 


在下一个屏幕,单击【预览】按钮,以便核实查询结果。特别要注意的是,“中止”列中的每一个值都应该为False。预览完成后,单击【确定】以关闭【查看数据】屏幕。如果想更改一个列的属性,可以单击【转换】列中的省略号按钮,但本例不要求你那样做。相反,我们准备在拷贝整个表时转换数据。此时,你可能要考虑重命名即将生成的目的表。默认情况下,向导会使用“结果”这个名称。请在【目的】列中单击“结果”,把它更改为“产品”。单击【下一步】继续。


下一个屏幕显示了用于调度导入任务的选项:


立即运行——这个选项立即执行导入任务(在DTS中称为“包”)。如果选择这个选项,那么不会保存任务,相反只是运行它。升迁时请选择这个选项。
用复制方法发布目的数据——将目的表用于复制。使用这个选项,DTS 导入/导出向导结束运行后将启动创建发布向导。
调度DTS包以便以后执行——如果想推迟到以后执行,就用这个选项来创建任务。升迁一个数据库时,你可能不需要保存任何导入任务。单击这个选项旁边的省略号按钮,会显示一系列调度选项,本文不再赘述。
保存DTS包——将导入的任务保存到以下任何位置之一:SQL Server、SQL Server Meta Data Services、结构化存储文件或者Visual Basic文件。
就本例来说,请选择【立即运行】,如图E所示,然后单击【下一步】。


图E



可选择立即运行导入任务。进行升迁时,一般要选择这个选项

 

为了执行这个包,请在最后一个屏幕上单击【完成】。之后,向导会用一个对话框来显示进度。在状态列表中,显示了每一项单独的任务,并随时指出它们是否完成。所有任务完成后,单击【完成】关闭向导。

现在,DTS已经将一个表成功升迁为一个新的SQL Server数据库(即NorthwindonlocalSS)。你还需要拷贝剩余的表,所以请重新启动DTS。最开始,还是将数据源指定为Northwind数据库。接着,从【数据库】下拉列表中选择【NorthwindonlocalSS】,单击【下一步】。

在下一个屏幕中,选择【从源数据库复制表和视图】,再单击【下一步】。选择想要拷贝的每一个表,如图F所示。记住,你现在可以跳过“产品”表,因为刚才已经升迁了那个表。因此,请在此屏幕中选择除“产品”之外的其他所有表(和查询)。

图F

 



勾选你想导入的表和查询(视图)

 


转换数据
在如图F所示的屏幕中,你可更改数据源中的列属性。下面来进行一次简单的示范转换。请单击“客户”表右侧的省略号按钮。在随后出现的屏幕中,请选择“公司名称”行,将“大小”从40改为60,如图G所示。


图G



更改一个列的“大小”属性

 


单击【编辑SQL】按钮,查看向导在SQL Server上创建“客户”表时会实际运行的CREATE TABLE语句。你可在此窗口中直接修改SQL语句,但最好还是在上一个屏幕中,通过图形用户界面来进行修改。


你也许会注意到,“客户ID”列没有标记成“客户”表的主键。通过修改语句,你可快速进行修改。在本例中,你需要在第二行中插入关键字PRIMARY KEY NOT,如图H所示。然后,单击【确定】返回上一个屏幕。还要注意,“公司名称”列的“大小”属性确实为60。


图H



检查SQL CREATE TABLE语句

 

在【转换】卡片中,你可修改用于将数据拷贝到SQL Server目的表的转换脚本。此外,还可更改在这个过程中使用的脚本语言。虽然你在升迁Access数据库时可能用不着这个卡片,但它在其他情况下可能非常有用。单击【确定】返回前一个屏幕,再单击【下一步】。和以前一样,选择【立即运行】选项,单击【下一步】,再单击【完成】,开始执行向导。

向导完成之后,单击【确定】清除提示性消息(它告诉你拷贝了多少个表和查询)。那条消息可能使你感到吃惊,因为它声称拷贝了23个表,但Northwind实际只有8个表。下一节将解释原因。请单击【完成】关闭向导。

 

查看结果

现在,我们可在企业管理器中查看结果。图I展示了本地服务器上的新数据库。在【表】列表中,现在包括了所有Access查询。注意,向导已将查询转换成了表。这种格式的查询可能没有任何用处,但这里只是希望向你说明像这样升迁一个查询时,最终会发生什么事情。真正进行升迁时,你可能不希望拷贝查询。

图I



使用企业管理器查看新数据库

 


在很大程度上,DTS对表的升迁是成功的。请注意我们进行了特别处理的“产品”表的“中止”列,以及“客户”表的“客户ID”列。查看“产品”表的内容(如图J所示),你会发现每件产品的“中止”值为0(False)。这正是我们希望的结果,因为在升迁“产品”表时,我们故意用一个查询来限制了拷贝的数据。


图J



“中止”列只含有0(或False)值

 


图K展示了设计视图中的“客户”表。如你所见,“客户ID”列是表的主键。再查看其他表,你会发现向导没有拷贝主键。相反,利用如图H所示的SQL窗口,就可避免以后重新设置主键的必要。


图K



向导正确设置了这个表的主键

 

最后的工作

向导不会自动将主键从数据源拷贝到目的表。可像前面对“客户”表做的那样设置主键(参见图H),也可在最终的目的表中设置它们。除此之外,还有几件事情是向导不会做的:

向导不保持关系;必须在SQL Server中重建它们。
向导不强制数据源中设置的引用完整性规则。
升迁

面临一个升迁任务时,Access的升迁向导或者SQL Server的DTS都可以考虑。两者都能很好地升迁数据。但是,DTS向导显得更容易操作,而且功能齐全,不依赖于Access。

 

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 mssql企业管理器不能打 Oracle PRKC-1002错误原因和解决方案SQL SERVER数据库日志清空图文教程win2003计算机改名后sql server 2005 本地复DB2错误信息码大全

人气排行 彻底解决mysql中文乱码的办法mysql数据库root密码忘记的修改方法SQL SERVER数据库日志清空图文教程.bak备份文件如何恢复Oracle PRKC-1002错误原因和解决方案Oracle错误代码大全如何将txt的文本数据导入SQL server 2005呢DB2错误信息码大全