大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 数据库 -> MSAccess -> 将现有的Access数据库升级为SQL

将现有的Access数据库升级为SQL

时间: 2021-08-13 作者:daque

很多access和sql server开拓职员都常常面对着将一个access数据库晋级到sql server数据库的题目。因为生存现有的access晋级引导,这一变化的进程就会变得十分大略,更加是当你创造一个与sql server数据相接洽的adp的功夫。但是,引导并不是完美无缺的,须要处置的题目仍旧大有生存。 开始,有些东西并不是大略的晋级,以是这时候你不得不报酬地处置。第二,很多access个性──比方少许查问典型,东西,以及一定的数据典型在你没有做好晋级之前的筹备的情景下就会引导缺点的爆发。此刻,让咱们计划一下在数据库晋级进程中大概面对的题目,我将供给不妨处置题目的少许通用的引导本领,结果,你必需花确定的功夫和精神将那些常识运用到开拓之中。 哪些不不妨晋级? 在处置本质的题目之前,让咱们看看不许随便晋级的东西,它们囊括以次: 穿插表查问 包括sql distinctrow要害字的任何查问 一切的湮没东西 动作参数的表格数据的查问(那些表格不妨晋级,但它们却不许精确的运转) pass-through查问 sql数据设置谈话查问(比方create table, alter table, 以及drop语句) 那些access东西须要一定的处置。简直的,你将创造一个可比拟的sql server东西,除此除外,sql server不扶助jet安定个性,以是你必需运用windows认证和/或sql server安定体制。 囊括的题目点 在数据库的晋级之前,即使你仍旧领会哪些场合将大概引导缺点并领会怎样处置爆发的缺点,数据库晋级进程中引导的缺点的大概性将大地面缩小。我不妨供给的数据库晋级的最佳的倡导是在开拓之前做好最完备的安置。此刻,我将陈列数据库晋级进程中大概会引导爆发的题目──即使你没有做好安置之前的筹备。 不扶助的日子 对于日子,在access和sql server之间都生存很大的分辨。access扶助很大范畴的日子,从100年1月1日到9999年12月31日。差异,sql server扶助的日子从1753年1月1日到9999年12月31日。数据库的晋级引导没辙晋级包括sql server不扶助的日子的表格。这就表示着在晋级之前你必需人为地处置那些日子。倒霉的是,这一题目只感化少量的数据库。 与表格遏制关系的查问 开拓职员常常会运用表格遏制的查问来控制或咨询一个数据根源。一个表格不妨供给将数据表露在一个一定汇报中的多种采用。比方,sql select语句包括了用户的输出: select orders.requireddate, orders.shippeddate, orders.freight,     orders.shipname, orders.shipaddress, orders.orderdate from orders where orders.orderdate between [forms]![datefilter]![datefrom] and [forms]![datefilter]![dateto])); 为了控制汇报中的数据,用户不妨输出一个发端和中断的日子到列表(datefrom 和dateto)。其余的代码不妨翻开并表露满意用户输出的两个日子之间的记载。 由于这种查问办法被jet处置,表格中爆发的题目不妨很快被处置。但是,当数据库晋级时,sql server不会波及到表格遏制,截止常常为查问波折。为了矫正这一查问办法,开拓职员必需变动表格。我倡导你运用输出参数属性,并将数值传播到sql server保存步调。 穿插表查问 sql server不扶助jet transform语句──这一语句不妨使一个穿插表查问变成大概。比方,数据库晋级引导扶助以次查问办法: transform sum(ccur([order details].unitprice*[quantity]*(1-[discount])/100)*100)     as productamount select products.productname, orders.customerid, year([orderdate]) as orderyear from products inner join (orders inner join [order details] on orders.orderid = [order details].orderid) on products.productid =     [order details].productid where orders.orderdate between #1/1/1997# and #12/31/1997# group by products.productname, orders.customerid, year([orderdate]) pivot "qtr " & datepart("q",[orderdate],1,0) in ("qtr 1","qtr 2","qtr 3","qtr 4") 还好,你无需在sql server中运用transact-sql (t-sql) case要害词从新编写一个access的穿插表查问。底下的select语句刻画了运用t-sql办法从新创造一个穿插表查问的语法: select customers.customerid, customers.customername     sum (case when orders.orderdate between ’’01-jan-1990’’ and ’’31-dec-1996’’     then [unitprice]*[quantity] else 0 end) as 1997) from customers inner join orders on customerid=orders.customerid 湮没东西 一切的湮没东西在数据库晋级进程中都被忽视。对此,你最佳的处置本领是运用步调东西的gethiddenattribute属性检核对象。比方,以次代码运用这一本领确定东西能否被湮没。 dim ishidden as boolean if application.gethiddenattribute(objtype, objname) then      ishidden = true end if 即使一定的东西被湮没,ishidden布尔变量将被为true。 包括索引的表格    数据库晋级引导不扶助没有索引或其余控制的表格。晋级引导不妨晋级一个无索引的表格,但其变换之后只能变成一个只读的表格。倒霉的是,处置这一题目很大略:增添一个索引到每一个没有索引的表格。一旦你仍旧实行晋级数据库,请记取将增添的索引简略。 数据库晋级操纵办法 一旦你仍旧做好十足筹备,并决定操纵不妨发端。数据库晋级引导不妨为你供给三种采用: 输入access表格到sql server并链接到access数据库 运用pass-through查问与sql server的后盾效劳器的表格彼此通信 将所有access数据库挪动到一个access数据库工程(其只与sql server接洽) 为了启用数据库晋级引导,先从东西菜单栏中采用数据库功效,而后从子菜单中采用晋级引导。引导的第一个面板供给两种采用:你不妨创造一个新的sql server 数据库来寄存access表格,如图a所示,大概你不妨在一个现成的sql server数据库中增添表格。采用一个现成的sql server数据库将须要输出一个数据效劳称呼(dsn)。 采用创造一个新的数据库大概运用一个现成的数据库 第二个面板诉求赢得sql server典型的消息。除此除外,你必需认证安定体制(即使生存)和为新的数据库供给一个缺省的称呼。 为一个新的数据库定名 在这点上,你不妨将须要的表格复制到sql server,你也不妨指出实行的局部将变成一个完备的adp大概一个被链接的表格 指明一个adp大概一个被链接的表格 避开烦恼 每一个开拓职员都有各别的数据库晋级操纵的体味,以是没辙保护第一次操纵就不妨到达胜利。但是,即使你按照正文中供给的相关准则,你该当遇到更少的缺点,纵然碰到,你也不妨很简单地矫正缺点,并连接操纵。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.