将Access数据库移植到SQL Server方法浅析
CREATEPROCEDUREAS
SQLServer管理器允许对SQLServer以及SQLServer中的对象进行企业级的配置和管理。SQLServer管理器提供一个强有力的scheduling引擎,高度的容错力和一个嵌入式的复制管理界面。使用SQLServer管理器可以实现以下功能:
视图(Views)
移植MicrosoftAccess查询
[INTOnew_table]
Access2.0格式:
如果您并不太愿意采用Access2000和UpsizingWizard来实现移植,本文可以作为将Access2000移植到SQLServer的一个指南。转移一个Access上的应用首先需要将数据转移到SQLServer,然后将查询转移进数据库,或是转移为SQL文件以备稍后执行。最后要采取的步骤是移植应用程序。
[{TOPinteger|TOPintegerPERCENT}[WITHTIES]]
UPDATE语句可以存储在事务_SQL脚本程序中,然而比较好地执行UPDATE语句的方法是创建一个存储过程。
视图具有动态的虚拟表的效果,可提供最近的信息。这是一个输入/输出强化器,因为每当发出一个查询时它都要求对数据表重现建立连接。
转换数据
在“选择数据目标”(ChooseaDestination)的对话窗口中,选择“MicrosoftOLEDBProviderforSQLServer”,再选择好数据库服务器,然后点击所需的认证模式。
输入和输出数据
临时表为已连接的用户会话建立一个快照。您可以建立局部的或全局的临时表。局部临时表只在当前会话中可见,而全局临时表则在所有会话都是可见的。在局部临时表的名字前加上单个数字的前缀((#table_name)),而在全局临时表的名字前加上两位数字的前缀(##table_name)。对临时表的查询执行起来非常快,因为它们取得一个结果集的时候通常只用一个表,而不是将多个表动态地连接在一起来。
移植MicrosoftAccess的查询到存储过程和视图
CREATEPROCEDUREEMP_SALES_BY_COUNTRY
SQLServer查询分析器是一种图形化的查询工具,通过它您可以分析一个查询,同时执行多个查询,查看数据和获取索引建议。SQLServer查询分析器提供了showplan选项,可用来显示SQLServer查询优化器所选择的数据提取方法。
下面是当您将您的Access应用移植到SQLServer时必须考虑的一些其他问题:
CREATETABLEmytable(lowint,highint)
一个Access的交叉表可以通过SQL程序段、存储过程或视图中的事务处理SQL语句来执行。每当发出一个查询时,数据连接被重现执行以确保最近的数据得到使用。
如果存储过程所基于的数据库变化了,而存储过程经过仔细的修改以反应这些变化,则对存储过程的调用将不会受到破坏。
存储过程(Storedprocedures)
将整个查询粘贴到SQLServer查询分析器中。
管理表、视图、存储过程、触发器、索引、规则、默认值以及用户定义的数据类型
开发者可以将大部分产生自Access查询(查找,插入,修改,删除)的事务处理SQL语句转移至存储过程。用事务处理SQL语句书写的存储过程可以用来对您的数据存取打包,并使之标准化,而且存储过程实际上是存储在数据库中的。存储过程可以带参数,也可不带参数,可以由数据库程序调用或者由SQLServer查询分析器手动执行。
随着用户对于企业级高性能数据库的需求的增长,用户时常要从MicrosoftAccessJet引擎的文件-服务器环境下转换到MicrosoftSQLServer的客户-服务器环境。MicrosoftOffice2000中的Access2000UpsizingWizard可实现将数据表和查询转移到SQLServer7.0中。如果您用的是Access的较早的版本,您可以先将它升级为Access2000,然后再使用其中的UpsizingWizard,从而将您的应用移植到SQLServer中。
Access查询类型的SQLServer移植选择与建议
交叉表经常用于总结报表。
使用蓝色的多选项图标分析语句
Orders.[ShippedDate],[OrderSubtotals].SubtotalAS[SaleAmount]
在SQLServerManager(EnterpriseManager)的工具菜单中,鼠标指向“DataTransformationServices”,然后点击“ImportData.”
[FROM{}[,…n]]
一个视图
SQLServer7.0格式:
[WITH{CUBE|ROLLUP}]
将语句拷贝到SQLServer查询分析器中
@BeginningDatedatetime,
大部分的Access查询应该转换成存储过程和视图。然而,有一些应用程序开发者不太常用的语句可以存储为事务处理SQL脚本,一种以sql为文件扩展名的文本文件。这些文件可以在SQLServer查询分析器中运行。
事务处理SQL语句通常是由数据库程序调用的,但是您也可以使用SQLServer7.0中包含的SQLServer查询分析器直接运行它们。SQLServer查询分析器可帮助开发者测试事务处理SQL语句,或运行那些执行查询处理、数据操作(插入,修改,删除)和数据定义(创建表)的事务处理SQL语句。
SQLServer管理器(SQLServerEnterpriseManager)
备份数据和事务处理日志
每个Access查询都必须用以下的一系列语句替换:
执行各种网络管理任务
交叉表(CROSSTAB)
[GROUPBY[ALL]group_by_expression[,…n]
SQLServer查询分析器(QueryAnalyzer)
测试语法,保存事务处理SQL语句以备后用,或者在数据库中执行这些语句。您可以选择将事务处理SQL语句保存到一段脚本程序中。
要执行Access中的创建表(MAKETABLE)的查询任务的开发者在SQLServer中有几种选择。开发者可创建下列对象之一:
如欲了解临时表的其他信息,请参阅SQLServer在线参考书。
数据转移服务(DataTransformationServices,DTS)
在“View”菜单上点击“SQL”按钮。
APPEND(添加)
根据实际应用情况,比较合适的方法是将交叉表中的数据存储为一个临时表(参考下面的MAKETABLE),临时表对资源的需求比较少,但是临时表在建立的同时只提供对数据的一个快照(snapshot)。
Access中的“MAKETABLE”(创建表)可以通过事务处理SQL脚本程序或存储过程中的事务处理SQL语言的建表语句“CREATETABLE”来执行。语法如下所示:
FROMEmployeesINNERJOIN(OrdersINNERJOIN[OrderSubtotals]ONOrders.[OrderID]=[OrderSubtotals].[OrderID])ONEmployees.=Orders.
带参数的SQLServer存储过程需要一种不同于Access查询的语法格式,例如:
将Access语句转移到事务处理SQL文件
如果您打算将一些Access查询转换为sql文件的话,可以考虑根据它们使用的方式有区别地将这些事务处理SQL语句分别放在几个脚本程序中。例如,您可以将必须以同样频率运行的事务处理SQL语句归类到同一个脚本中。另一个脚本中则应包含所有只在某些条件下运行的事务处理SQL语句。此外,必须以一定顺序执行的事务处理SQL语句应当归类到一个不连续的脚本中。
建立全文本索引、数据库图表和数据库维护计划
管理连接和用户许可
@EndingDatedatetime
您可以将Access的查询以下面的格式之一转移至SQLServer中:
数据转移服务允许您在多种异构数据源之间输入和输出数据,这些数据源采用基于数据库的OLE体系结构;或在使用SQLServer7.0的多个计算机之间转移数据库和数据库对象;您还可以通过运用数据转移服务,更便捷地在一个在线事务处理系统(OLTP)中建立数据仓库和数据中心。
SELECT[ALL|DISTINCT]
AS
SQLServerProfiler可以实时地捕获数据库服务器活动的连续记录。SQLServerProfiler允许您监控SQLServer产生的事件,过滤基于用户指定标准的事件,或将操作步骤输出到屏幕、文件或数据表。运用SQLServerProfiler,您可以重新执行所捕获的上一次操作。这种工具可以帮助应用程序开发者识别那些可能会降低应用程序性能的事务处理。在将一个基于文件体系结构的应用程序移植到客户/服务器结构中时该特性是很有用的,因为它的最后一步包括对面向新的客户/服务器环境的应用程序进行优化。
FROMEmployeesINNERJOIN(OrdersINNERJ
SQLServerProfiler
ALLEND语句可以存储在事务_SQL脚本程序中,然而比较好地执行APPEND语句的方法是创建一个存储过程。
SELECTOrders.[OrderID],[LastName]&","&[FirstName]ASSalesperson,Employees.Country,Orders.[ShippedDate],[OrderSubtotals].SubtotalAS[SaleAmount]
一个临时表
ORDERBY[LastName]&","&[FirstName],Employees.Country,Orders.[ShippedDate];
其他设计上的考虑
DTSWizard允许您交互地创建DTS包,通过OLEDB和ODBC来输入、输出、验证和转移数据。DTSWizard还允许您在关系型数据库之间拷贝图解(schema)和数据。
PARAMETERS[BeginningDate]DateTime,[EndingDate]DateTime;
使用DTSWizard将您的Access数据转移到SQLServer,可采取以下步骤:
使用参数
UPDATE(修改)
在以MicrosoftWindowsNT为操作系统的计算机中,SQLServerManager由SQLServerSetup进行安装,并被默认为服务器组件,而在运行着WindowsNT和MicrosoftWindows95的机器上,它将被默认为客户方组件。您将从SQLServerManager的图形用户界面中启动数据转移服务(DTS,DataTransformationServices)。
CREATEVIEWAS
管理SQLServer对象的备份
SQLServer7.0中的数据转换服务(DTS)允许您通过创建包来实现临时表建立的标准化、自动化和进度安排。例如,当您移植Access2.0中的Northwind范例数据库时,用于季度数据报表的交叉表可转变为一个视图或者一个可在规范基础上建立临时表的数据转换。如欲了解关于DTS的其他信息,请参阅SQLServer在线参考书。
在“指定表备份或查询”(SpecifyTableCopyorQuery)的对话窗口中,点击“拷贝表”(Copytables)。
转移表和数据
一个SELECT语句可以存储在事务处理SQL文件、存储过程或是视图中。建立存储过程是将数据库应用开发与数据库设计的物理实施分开的最佳方法。存储过程可在一处创建而由应用程序调用。
在Access的数据库窗口中点击“Queries”tab键,然后点击“Design”按钮。
事务处理SQL脚本程序(Transact-SQLscripts)
在“选择数据源”(ChooseaDataSource)的对话窗口中,选择MicrosoftAccess为数据源,然后输入您的.mdb文件名(mdb为文件扩展名)或者选择浏览文件。
打开Access,然后在SQLServer中,打开SQLServer查询分析器。
GO
WHERE(((Orders.[ShippedDate])Between[BeginningDate]And[EndingDate]))
在“选择数据源”的对话窗口中,点击“选择所有项”(SelectAll)。
在适当时候执行该语句
SELECTOrders.[OrderID],[LastName]+","+[FirstName]ASSalesperson,Employees.Country,
移植MicrosoftAccess查询到事务处理SQL语句
视图是从一个或多个表中显示特定的行和列的虚拟表。它们允许用户可以不直接执行构成查询基础的复杂连接而建立查询。视图不支持参数的使用。连接多个数据表的视图不能用INSERT,UPDATE或DELETE语句来修改。视图由事务处理SQL语句调用,也可用于SQLServer查询分析器中运行的程序段。SQLServer视图和SQL-92标准不支持视图中的ORDERBY排序子句。如欲了解事务处理SQL,存储过程和视图的其他信息,请参阅SQLServer在线参考书。
[WHERE]
GO
创建表(MAKETABLE)
查询名:EmployeeSalesByCountry,inNWIND.mdb:
数据库移植中用到的SQLServer工具
对每个Access查询应执行:
创建脚本程序
相关热词: 方法
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/access/1510.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Windows 7添加Access数据源
时间:2020-12-29
-
2012年上半年计算机二级
时间:2020-12-08
-
2014年计算机二级考试Acc
时间:2020-12-08
-
ACCESS数据库多表查询技巧
时间:2020-12-08
-
Access教程_access数据库教程
时间:2020-12-08
-
Access2007教程 怎样在设计视
时间:2020-12-08
-
Access2007表的数据表教程
时间:2020-12-08
-
如何在Access中创建数据表
时间:2020-12-08
热门文章
-
在Access 2007中保护Access密码和进行加密
时间:2020-12-07
-
如何学会对ACCESS数据库的性能进行分析
时间:2020-12-08
-
Access2007数据表的操作
时间:2020-12-07
-
在Access2007表中添加和删除字段
时间:2020-12-07
-
Access2000教程:Access导入数据库文件
时间:2020-12-07
-
Windows 7添加Access数据源
时间:2020-12-29
-
Access2007教程 怎样在设计视图下创建查询
时间:2020-12-08
-
Access2000教程:Access 如何加密/解密数据库
时间:2020-12-07
-
在Access2007中使用“多值”实现文字的su
时间:2020-12-07
-
Access教程_access数据库教程_access数据库入
时间:2020-12-08
