|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
“MySQL实际上是一个数据库家族,你可以从选择一个并将其配置成可以满足你的大多数情况,”开源顾问公司Ethiqa的总裁如此表示,“因此,你可以在开始的时候选择一个小巧的版本产品,以后再根据需要来对其进行性能或大小上的扩展。”开辟者经常以Access作为原型大概用Access来开辟不是很关头的使用程序。可是,跟着公司营业的增加,要办理的成绩会变得愈来愈庞大,Access情况大概没法满意必要。今朝,Access2002的.mdb和.adp文件都将一个数据库的长度限定在2GB之内。这意味着几近每一个Access和SQLServer开辟者终极都要将一个Access数据库升迁成一个SQLServer数据库。
因为升迁已成为极其罕见的一个义务,以是Access配套供应了一个“升迁导游”。它固然能完成这个事情,但操纵历程其实不复杂。SQLServer与Access的几处不兼容的中央是该导游没法处置的。你也许不晓得,SQLServer的“数据转换服务”(DataTransformationServices,DTS)也能升迁一个Access数据库。上面让我们对照这两个导游,并体验怎样利用DTS来升迁一个实践Access数据库。如许一来,你在碰到一个升迁义务时,就可以选择最无效的体例。
对照Access升迁导游和DTS
Access升迁导游(AUW)在Access外部事情,能将数据拷贝到SQLServer表。相反,DTS未来自一个Access数据库的数据拷贝到SQLServer表中。注重,你可将数据从一个文本文件大概一个OLEDB数据源(个中天然包含Access数据库)导进SQLServer。导进文件的同时,还能对数据举行转换。
DTS的功效十分完全,有的开辟者以为它比AUW强很多,来由是:
可在导进数据时变动列(字段)属性。
在导进时代创立查询,限定实践导进的数据。
但AUW也有DTS不具有的一个长处,那就是它能将一个Access前端链接到SQLServer数据。DTS则否则,它只能导进数据,你不克不及将导进的数据链接到一个现有的前端。
利用DTS导进/导出导游
可接纳几种体例来实行DTS:
在Windows【入手下手】菜单中,选择【MicrosoftSQLServer】,再选择【导进和导出数据】。
运转企业办理器,毗连到想导进数据的一个特定的服务器和数据库,然后从【工具】菜单当选择【数据转换服务】|【导进数据】。在一个现有的数据库中导进数据时,可以使用这个选项。
在企业办理器中,毗连到要导进数据的服务器,再右击【数据转换服务】节点。选择【一切义务】|【导进数据】。导游最入手下手会显现一个提醒性屏幕。请单击【下一步】入手下手操纵。
指定命据源
升迁Access的第一步是指定命据源和包括了待导进数据的实践文件。在本例中,请选择MicrosoftAccess作为数据源,再找到Northwind.mdb数据库(Access配套供应的树模数据库)。它一般在以下文件夹中:
LocalDrive:ProgramFilesMicrosoftOfficeOffice10Samples
注重,你可对恣意Access数据库举行升迁。升迁不会对实践的.mdb文件及其数据发生任何影响。
如图A所示,本例不请求你输出暗码和用户名。可是,在操纵一个平安数据库时,则大概必需办理办理员用户名和暗码。换言之,在操纵这类数据库之前,你必需取得办理权限。请单击【下一步】持续。
图A
指定命据源和文件。假如操纵的是平安数据库,还必要输出办理员用户名和暗码
相反,假如利用的是AUW,它起首会请求你选择新建一个SQLServer数据库,大概选择将SQLServer数据链接到一个Access前端。如前所述,DTS没有供应链接选项。
选择目标
鄙人一个屏幕中,要为导进的数据选择一个目标(地)。你可选择以后服务器上的任何数据库,也能够新建一个数据库(本例接纳的是第二种做法)。不要变动“目标”设置,固然有几个选项可供选择,但本例的“目标”就是【用于SQLServer的MicrosoftOLEDB供应程序】。
固然能变动服务器,但本例不请求你如许做。除此以外,还应当保存【利用Windows身份考证】设置。只要SQLServer2000才撑持Windows身份考证。固然,假如你的平安设置有所区分,那末也能够响应地修正谁人选项。
从【数据库】下拉列表当选择【<新建>】。随后会呈现【创立数据库】对话框。请输出新数据库的称号,Northwind的数据将导进这个数据库中,如图B所示。定名一个事情数据库时,务必遵守你的公司的定名标准。单击【断定】后,DTS会主动更新【数据库】下拉列表中的称号。单击【断定】持续。
图B
指定新的数据库称号限定要导进的数据
指定了Access数据源,并新建了一个SQLServer数据库以后,便可入手下手将数据从数据源导进新的SQLServer数据库(NorthwindonlocalSS)。可是,大概不克不及在一个会话中完玉成部事情。固然每次都能拷贝恣意数目的表。但假设你必要用一个查询来限定数据,每次就只能操纵那一个表。侥幸的是,分外的事情其实不必要花几工夫。
起首,让我们创立一个查询来限定“产物”表中的数据,从而入手下手我们的拷贝历程。详细地说,我们只想拷贝那些举动的(而不是中断的)的产物。为此,请选择【用一条查询指定要传输的数据】,如图C所示,再单击【下一步】。
图C
可拷贝几个表,大概拷贝一个查询的了局图D的SQL语句将要导进的纪录限定为那些没有中断的产物。利用查询天生器来显现你要包含的表和列。关于像如许的复杂语句来讲,查询天生器大概有点儿牛鼎烹鸡,但关于较庞大的语句来讲,假如指定了几个列的称号,查询天生器就可以无效地避免你出错。单击【剖析】来考证语句的无效性。输出了准确的SQL语句后,请单击【下一步】。
图D
输出对数据举行限定的SQL语句鄙人一个屏幕,单击【预览】按钮,以便核实查询了局。出格要注重的是,“中断”列中的每个值都应当为False。预览完成后,单击【断定】以封闭【检察数据】屏幕。假如想变动一个列的属性,能够单击【转换】列中的省略号按钮,但本例不请求你那样做。相反,我们筹办在拷贝全部表时转换数据。此时,你大概要思索重定名行将天生的目标表。默许情形下,导游会利用“了局”这个称号。请在【目标】列中单击“了局”,把它变动为“产物”。单击【下一步】持续。
下一个屏幕显现了用于调剂导进义务的选项:
当即运转――这个选项当即实行导进义务(在DTS中称为“包”)。假如选择这个选项,那末不会保留义务,相反只是运转它。升迁时请选择这个选项。
用复制办法公布目标数据――将目标表用于复制。利用这个选项,DTS导进/导出导游停止运转后将启动创立公布导游。
调剂DTS包以便今后实行――假如想推延到今后实行,就用这个选项来创立义务。升迁一个数据库时,你大概不必要保留任何导进义务。单击这个选项中间的省略号按钮,会显现一系列调剂选项,本文不再赘述。
保留DTS包――将导进的义务保留到以下任何地位之一:SQLServer、SQLServerMetaDataServices、布局化存储文件大概VisualBasic文件。
就本例来讲,请选择【当即运转】,如图E所示,然后单击【下一步】。
图E
可选择当即运转导进义务。举行升迁时,一样平常要选择这个选项为了实行这个包,请在最初一个屏幕上单击【完成】。以后,导游会用一个对话框来显现进度。在形态列表中,显现了每项独自的义务,并随时指出它们是不是完成。一切义务完成后,单击【完成】封闭导游。如今,DTS已将一个表乐成升迁为一个新的SQLServer数据库(即NorthwindonlocalSS)。你还必要拷贝残剩的表,以是请从头启动DTS。最入手下手,仍是将数据源指定为Northwind数据库。接着,从【数据库】下拉列表当选择【NorthwindonlocalSS】,单击【下一步】。鄙人一个屏幕中,选择【从源数据库复制表和视图】,再单击【下一步】。选择想要拷贝的每个表,如图F所示。记着,你如今能够跳过“产物”表,由于方才已升迁了谁人表。因而,请在此屏幕当选择除“产物”以外的其他一切表(和查询)。图F
勾选你想导进的表和查询(视图)转换数据
在如图F所示的屏幕中,你可变动数据源中的列属性。上面来举行一次复杂的树模转换。请单击“客户”表右边的省略号按钮。在随后呈现的屏幕中,请选择“公司称号”行,将“巨细”从40改成60,如图G所示。
图G
变动一个列的“巨细”属性单击【编纂SQL】按钮,检察导游在SQLServer上创立“客户”表时会实践运转的CREATETABLE语句。你可在此窗口中间接修正SQL语句,但最好仍是在上一个屏幕中,经由过程图形用户界面来举行修正。
你大概会注重到,“客户ID”列没有标志成“客户”表的主键。经由过程修正语句,你可疾速举行修正。在本例中,你必要在第二行中拔出关头字PRIMARYKEYNOT,如图H所示。然后,单击【断定】前往上一个屏幕。还要注重,“公司称号”列的“巨细”属性的确为60。
图H
反省SQLCREATETABLE语句在【转换】卡片中,你可修正用于将数据拷贝到SQLServer目标表的转换剧本。别的,还可变动在这个过程当中利用的剧本言语。固然你在升迁Access数据库时大概用不着这个卡片,但它在其他情形下大概十分有效。单击【断定】前往前一个屏幕,再单击【下一步】。和之前一样,选择【当即运转】选项,单击【下一步】,再单击【完成】,入手下手实行导游。导游完成以后,单击【断定】扫除提醒性动静(它告知你拷贝了几个表和查询)。那条动静大概使你感应受惊,由于它宣称拷贝了23个表,但Northwind实践只要8个表。下一节将注释缘故原由。请单击【完成】封闭导游。检察了局如今,我们可在企业办理器中检察了局。图I展现了当地服务器上的新数据库。在【表】列表中,如今包含了一切Access查询。注重,导游已将查询转换成了表。这类格局的查询大概没有任何用途,但这里只是但愿向你申明像如许升迁一个查询时,终极会产生甚么事变。真正举行升迁时,你大概不但愿拷贝查询。图I
利用企业办理器检察新数据库在很年夜水平上,DTS对表的升迁是乐成的。请注重我们举行了出格处置的“产物”表的“中断”列,和“客户”表的“客户ID”列。检察“产物”表的内容(如图J所示),你会发明每件产物的“中断”值为0(False)。这恰是我们但愿的了局,由于在升迁“产物”表时,我们存心用一个查询来限定了拷贝的数据。
图J
“中断”列只含有0(或False)值图K展现了计划视图中的“客户”表。如你所见,“客户ID”列是表的主键。再检察其他表,你会发明导游没有拷贝主键。相反,使用如图H所示的SQL窗口,便可制止今后从头设置主键的需要。
图K
导游准确设置了这个表的主键最初的事情导游不会主动将主键从数据源拷贝到目标表。可像后面对“客户”表做的那样设置主键(拜见图H),也可在终极的目标表中设置它们。除此以外,另有几件事变是导游不会做的:导游不坚持干系;必需在SQLServer中重修它们。
导游不强迫数据源中设置的援用完全性划定规矩。
升迁面对一个升迁义务时,Access的升迁导游大概SQLServer的DTS都能够思索。二者都能很好地升迁数据。可是,DTS导游显得更简单操纵,并且功效完全,不依附于Access。你不用花费很多时间和金钱来培训现有的职工,或者去花大价钱雇用那些拥有各种证书的开发者。因为MySQL的维护和管理在很大程度上是“傻瓜型”的。 |
|