仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 910|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL教程之将Access数据库移植到SQLServer

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:19:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
首先我们要知道,或许有一项技术存在很多理由让我们可以选择使用MySQL学习教程,但是让我们不使用它往往只要有一个理由就足够了。  跟着用户关于企业级高功能数据库的需求的增加,用户经常要从MicrosoftAccessJet引擎的文件-服务器情况下转换到MicrosoftSQLServer的客户-服务器情况。MicrosoftOffice2000中的Access2000UpsizingWizard可完成将数据表和查询转移到SQLServer7.0中。假如您用的是Access的较早的版本,您能够先将它晋级为Access2000,然后再利用个中的UpsizingWizard,从而将您的使用移植到SQLServer中。
  假如您其实不太乐意接纳Access2000和UpsizingWizard来完成移植,本文能够作为将Access2000移植到SQLServer的一个指南。转移一个Access上的使用起首必要将数据转移到SQLServer,然后将查询转移进数据库,或是转移为SQL文件以备稍后实行。最初要接纳的步骤是移植使用程序。
  数据库移植顶用到的SQLServer工具
  SQLServer办理器(SQLServerEnterpriseManager)
  SQLServer办理器同意对SQLServer和SQLServer中的工具举行企业级的设置和办理。SQLServer办理器供应一个强无力的scheduling引擎,高度的容错力和一个嵌进式的复制办理界面。利用SQLServer办理器能够完成以下功效:
  办理毗连和用户允许
  创立剧本程序
  办理SQLServer工具的备份
  备份数据和事件处置日记
  办理表、视图、存储历程、触发器、索引、划定规矩、默许值和用户界说的数据范例
  创建全文本索引、数据库图表和数据库保护企图
  输出和输入数据
  转换数据
  实行各类收集办理义务

  在以MicrosoftWindowsNT为操纵体系的盘算机中,SQLServerManager由SQLServerSetup举行安装,并被默许为服务器组件,而在运转着WindowsNT和MicrosoftWindows95的呆板上,它将被默许为客户方组件。您将从SQLServerManager的图形用户界面中启动数据转移服务(DTS,DataTransformationServices)。
  数据转移服务(DataTransformationServices,DTS)
  数据转移服务同意您在多种异构数据源之间输出和输入数据,这些数据源接纳基于数据库的OLE系统布局;或在利用SQLServer7.0的多个盘算机之间转移数据库和数据库工具;您还能够经由过程使用数据转移服务,更便利地在一个在线事件处置体系(OLTP)中创建数据堆栈和数据中央。
  DTSWizard同意您交互地创立DTS包,经由过程OLEDB和ODBC来输出、输入、考证和转移数据。DTSWizard还同意您在干系型数据库之间拷贝图解(schema)和数据。
  SQLServer查询剖析器(QueryAnalyzer)
  SQLServer查询剖析器是一种图形化的查询工具,经由过程它您能够剖析一个查询,同时实行多个查询,检察数据和猎取索引倡议。SQLServer查询剖析器供应了showplan选项,可用来显现SQLServer查询优化器所选择的数据提取办法。
  SQLServerProfiler
  SQLServerProfiler能够及时地捕捉数据库服务器举动的一连纪录。SQLServerProfiler同意您监控SQLServer发生的事务,过滤基于用户指定尺度的事务,或将操纵步骤输入到屏幕、文件或数据表。使用SQLServerProfiler,您能够从头实行所捕捉的上一次操纵。这类工具能够匡助使用程序开辟者辨认那些大概会下降使用程序功能的事件处置。在将一个基于文件系统布局的使用程序移植到客户/服务器布局中时该特征是很有效的,由于它的最初一步包含劈面向新的客户/服务器情况的使用程序举行优化。
  转移表和数据
  利用DTSWizard将您的Access数据转移到SQLServer,可接纳以下步骤:
  在SQLServerManager(EnterpriseManager)的工具菜单中,鼠标指向“DataTransformationServices”,然后点击“ImportData.”
  在“选择数据源”(ChooseaDataSource)的对话窗口中,选择MicrosoftAccess为数据源,然后输出您的.mdb文件名(mdb为文件扩大名)大概选择扫瞄文件。
  在“选择数据方针”(ChooseaDestination)的对话窗口中,选择“MicrosoftOLEDBProviderforSQLServer”,再选择好数据库服务器,然后点击所需的认证形式。
  在“指定表备份或查询”(SpecifyTableCopyorQuery)的对话窗口中,点击“拷贝表”(Copytables)。
  在“选择数据源”的对话窗口中,点击“选择一切项”(SelectAll)。
  移植MicrosoftAccess查询
  您能够将Access的查询以上面的格局之一转移至SQLServer中:
  事件处置SQL剧本程序(Transact-SQLscripts)
  事件处置SQL语句一般是由数据库程序挪用的,可是您也能够利用SQLServer7.0中包括的SQLServer查询剖析器间接运转它们。SQLServer查询剖析器可匡助开辟者测试事件处置SQL语句,或运转那些实行查询处置、数据操纵(拔出,修正,删除)和数据界说(创立表)的事件处置SQL语句。
  存储历程(Storedprocedures)
  开辟者能够将年夜部分发生自Access查询(查找,拔出,修正,删除)的事件处置SQL语句转移至存储历程。用事件处置SQL语句誊写的存储历程能够用来对您的数据存取打包,并使之尺度化,并且存储历程实践上是存储在数据库中的。存储历程能够带参数,也可不带参数,能够由数据库程序挪用大概由SQLServer查询剖析器手动实行。
  视图(Views)
  视图是从一个或多个表中显现特定的行和列的假造表。它们同意用户能够不间接实行组成查询基本的庞大毗连而创建查询。视图不撑持参数的利用。毗连多个数据表的视图不克不及用INSERT,UPDATE或DELETE语句来修正。视图由事件处置SQL语句挪用,也可用于SQLServer查询剖析器中运转的程序段。SQLServer视图和SQL-92尺度不撑持视图中的ORDERBY排序子句。如欲懂得事件处置SQL,存储历程和视图的其他信息,请参阅SQLServer在线参考书。
  Access查询范例的SQLServer移植选择与倡议
  一个SELECT语句能够存储在事件处置SQL文件、存储历程或是视图中。创建存储历程是将数据库使用开辟与数据库计划的物理实行分隔的最好办法。存储历程可在一处创立而由使用程序挪用。
  假如存储历程所基于的数据库变更了,而存储历程经由细心的修正以反响这些变更,则对存储历程的挪用将不会遭到损坏。
  交织表(CROSSTAB)
  交织表常常用于总结报表。
  一个Access的交织表能够经由过程SQL程序段、存储历程或视图中的事件处置SQL语句来实行。每当收回一个查询时,数据毗连被重现实行以确保比来的数据失掉利用。
  依据实践使用情形,对照符合的办法是将交织表中的数据存储为一个一时表(参考上面的MAKETABLE),一时表对资本的需求对照少,可是一时表在创建的同时只供应对数据的一个快照(snapshot)。
  创立表(MAKETABLE)
  Access中的“MAKETABLE”(创立表)能够经由过程事件处置SQL剧本程序或存储过程当中的事件处置SQL言语的建表语句“CREATETABLE”来实行。语法以下所示:
  SELECT[ALL|DISTINCT]
  [{TOPinteger|TOPintegerPERCENT}[WITHTIES]]
  <select_list>
  [INTOnew_table]
  [FROM{<table_source>}[,…n]]
  [WHERE<search_condition>]
  [GROUPBY[ALL]group_by_expression[,…n]
  [WITH{CUBE|ROLLUP}]
  CREATETABLEmytable(lowint,highint)
  UPDATE(修正)
  UPDATE语句能够存储在事件_SQL剧本程序中,但是对照好地实行UPDATE语句的办法是创立一个存储历程。
  APPEND(增加)
  ALLEND语句能够存储在事件_SQL剧本程序中,但是对照好地实行APPEND语句的办法是创立一个存储历程。
  移植MicrosoftAccess的查询到存储历程和视图
  每一个Access查询都必需用以下的一系列语句交换:
  CREATEPROCEDURE<NAME_HERE>AS
  <SELECT,UPDATE,DELETE,INSERT,CREATETABLEstatementfromMicrosoftAccess>
  GO
  CREATEVIEW<NAME_HERE>AS
  <Place(SELECTonly,withnoparameters)MicrosoftAccessQuery>
  GO
  对每一个Access查询应实行:
  翻开Access,然后在SQLServer中,翻开SQLServer查询剖析器。
  在Access的数据库窗口中点击“Queries”tab键,然后点击“Design”按钮。
  在“View”菜单上点击“SQL”按钮。
  将全部查询粘贴到SQLServer查询剖析器中。
  测试语法,保留事件处置SQL语句以备后用,大概在数据库中实行这些语句。您能够选择将事件处置SQL语句保留到一段剧本程序中。
共2页:上一页1[2]下一页

由于在MySQL中有如此众多的额外功能可选,诸如存储引擎等,你可以选择最适合你公司的一个,或者尝试选用多个引擎。MySQL开始非常小巧,但是可以随着公司的成长而不断地变强大。
只想知道 该用户已被删除
沙发
发表于 2015-1-19 08:51:27 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
小女巫 该用户已被删除
板凳
发表于 2015-1-28 05:53:54 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
愤怒的大鸟 该用户已被删除
地板
发表于 2015-2-5 18:11:45 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
深爱那片海 该用户已被删除
5#
发表于 2015-2-13 05:36:49 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
再见西城 该用户已被删除
6#
发表于 2015-3-3 15:51:45 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-11 12:14:40 | 只看该作者
XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
飘灵儿 该用户已被删除
8#
发表于 2015-3-18 16:22:54 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-26 12:43:13 | 只看该作者
可以动态传入参数,省却了动态SQL的拼写。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-6 00:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表