ACCESS转成SQL数据库的详尽过程

原创 2016年06月02日 12:52:26
 很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项  


一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的;  

二,转换的方法  

1,打开”控制面板“下”管理工具“中的”数据库源“;  

2,按”添加“添加一个新的数据源,在选择栏里选“Driver do microsoft Access (*.mdb)”,完成后将出现一个框,在“数据库源”里面输入你想写的名称,我取名叫“ABC”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的ACCESS数据库),然后确定。数据源在这里建好了,剩下转换了。  

3,打开SQL2000企业管理器,进入数据库,新建一个空的数据库“ABC”;  

4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续;  

5,在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按 ”下一步“;  

6,“目的”不需要修改,选择服务器(一般下为自己的本机local,也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),使用WINDOWS 身份验证指用自己的系统管理员身份操作,使用SQL身份操作验证可以用于网站的操作,推荐用后者;  

7,选上使用SQL身份操作验证后,填写你的用户名和密码,我自己选择的是系统默认号码sa,****,数据库选择刚新建的ABC,按下一步;  

8,这一步的两个单项选择,从数据源复制表和视图与用一条查询指令指定要传输的数据,选择前者,按下一步继续;  

9,这里将出现你自己ACCESS数据库的表,按全选后,下一步;  

10,DTS导入/导出向导,看立即运行被选中按下一步,  

11,按完成继续;  

12,这个步骤你将看到你的数据被导入SQL2000里面,当出现已经成功把XXX个表导入到数据库的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了.  

三,数据修改  

1,由于SQL2000里面没有自动编号,所以你的以自动编号设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的标示选择是,种子为1,增量为1,  

2,另外,ACCESS2000转换成SQL2000后,原来属性为是/否的字段将被转换成非空的bit,这时候你必须修改成自己想要的属性了;  

3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.  

ACCESS转MS SQL数据库的几点经验  

1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!  

2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。  

3.对此两种数据库进行操作的sql语句不全相同,例如: 

在对ACCESS数据库进行删除纪录时用:delete * from user where id=10,而对SQL SERVER数据库进行删除是用:delete user where id=10.  

ACCESS与SQLSERVER中的UPDATE语句对比:  
SQLSERVER中更新多表的UPDATE语句:  
UPDATE Tab1  
SET a.Name = b.Name  
FROM Tab1 a,Tab2 b  
WHERE a.ID = b.ID;  
同样功能的SQL语句在ACCESS中应该是  
UPDATE Tab1 a,Tab2 b  
SET a.Name = b.Name  
WHERE a.ID = b.ID;  
即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.  
上例中如果Tab2可以不是一个表,而是一个查询,例:  
UPDATE Tab1 a,(Select ID,Name From Tab2) b  

SET a.Name = b.Name  
WHERE a.ID = b.ID;  


4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。  

5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。 

补充: 

给大家一些我的经验吧。反正access到sqlserver的移植是很痛苦的,我弄过好几次了。希望大家能补充一下。 

1.数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。 

2.所有的默认值都丢失了。主要是数字类型和日期类型。 

3.所有now(),time(),date()要改成getdate()。 

4.所有datediff(’d’, time1, time2)要改成datediff(day, time1, time2) 

5.有可能一些true/false类型不能使用,要变为1/0。 

6.备注类型要通过cast(column as varchar)来使用。 

7.CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。 

8.isnull(rowname)要改成rowname = null 

Access转sqlserver需要注意的地方 

1,对于日期字段字段 
access表示为:81-28-12# 
SQLSERVER2000表示为:‘‘1981-02-12‘‘ 
2,SQL语句区别,select ,update 在对单表操作时都差不多, 
但多表操作时update语句的区别ACCESS与SQLSERVER中的UPDATE语句对比: 
SQLSERVER中更新多表的UPDATE语句: 
UPDATE Tab1 
SET a.Name = b.Name 
FROM Tab1 a,Tab2 b 
WHERE a.ID = b.ID; 
同样功能的SQL语句在ACCESS中应该是 
UPDATE Tab1 a,Tab2 b 
SET a.Name = b.Name 
WHERE a.ID = b.ID; 
即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后. 
更新单表时:都为: 
UPDATE table1 set ab=‘12‘,cd=444 where .... 
3,delete语句 
access中删除时用:delete * from table1 where a>2 即只要把select 语句里的select 换成delete就可以了。 
sqlserve 中则为: delete from table1 where a>2 即没有*号 
4,as 后面的计算字段区别 
access中可以这样:select a,sum(num) as kc_num,kc_num*num as all_kc_num 即可以把AS后的字段当作一个数据库字段参与计算。 
sqlserver 中则为:select a,sum(num) as kc_num,sum(num)*num as all_kc_num 即不可以把AS后的字段当作一个数据库字段参与计算。 
5,[.]与[!]的区别 
access中多表联合查询时:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2 ,中间的AS可以不要。 
 sqlserve 中则:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2 ,中间的AS可以不要。 
6,联合查询时, 
   access中多表联合查询:‘select 
版权声明:本文为博主原创文章,未经博主允许不得转载。

SQL Server 2000数据库转换为Access数据库

首先在本地磁盘建立一个空的Access数据库(比如以student.mdb 为例),这时已经存在的SQL Server 2000的数据库,我们以sky2098为例,其中有一个表student,如果所示...
  • sky2098
  • sky2098
  • 2007年03月22日 16:49
  • 1547

ACCESS转成SQL数据库

很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项 一...
  • sat472291519
  • sat472291519
  • 2012年04月06日 10:30
  • 519

将ACCESS数据库迁移到SQLSERVER数据库方法(图文详解)

本人在做专业课设计时需要将自己动手把ACCESS数据库中数据转换到SQL Server数据库中。经过百般挫折也算是完成了,经过这般痛苦感觉,还是记录下来比较好,否则都对不起自己浪费的那好几个小时。废话...
  • aiming66
  • aiming66
  • 2016年12月31日 16:04
  • 6413

把ACCESS转成SQL数据库

 一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的; 二,转换的方法 1,打开”控制面板“下”管理工具“中的”数据库源“; 2...
  • ITniao
  • ITniao
  • 2008年11月14日 04:06
  • 435

把ACCESS转成SQL数据库

很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项 一,首先...
  • xiang588
  • xiang588
  • 2007年05月10日 20:44
  • 526

Access数据库的模糊查询到底是用*还是%

今天被用了一下Access数据库,结果被它的模糊查询给折腾了一上午,到底是用*还是%?特此记下来 事情是这样的,我用C#写了个小的窗体程序,访问Access数据库进行一个模糊查询,我先手工往Acce...
  • wangqiuyun
  • wangqiuyun
  • 2012年12月28日 13:18
  • 9559

ACCESS中操作 SQL Server 数据库

--ACCESS中操作 SQL Server 数据库,需要你能连接远程的 SQL Server 服务器:然后打开ACCESS数据库(用ACCESS打开/程序中打开均可)--导入数据到ACCESS数据库...
  • ReViSion
  • ReViSion
  • 2006年03月12日 10:10
  • 1234

asp网站从ACCESS转SQLSERVER

前几天为制作一个网站,需要从ACCESS转至SQLSERVER,从网站上查看了很多的资料,但觉得没有一个能够全面覆盖要点的,所以我总结一下,顺便给出一些经验。    首先如果一开始就需要制作SQLS...
  • websph
  • websph
  • 2010年05月31日 09:25
  • 4532

ACCESS与外部其它数据交互 - IN 子句 -连接外部数据库

ACCESS做为MS Office 办公套件中的一个应用程序,经常需要来其它数据源进行数据交互,比如在查询中使用在EXCEL中的数据或文本记录文件中的数据,或者倒出查询结果到EXCEL的数据表中或其它...
  • acmain_chm
  • acmain_chm
  • 2009年01月15日 15:50
  • 7264

SQL Server、Access、Oracle数据库之优缺点对比

导读: 1、SQL Server是一个关系数据库管理系统。 2、ACCESS是由微软发布的关联式数据库管理系统。 3、Oracle是基于服务器的大型数据库。...
  • dtjiawenwang88
  • dtjiawenwang88
  • 2017年07月03日 22:31
  • 673
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ACCESS转成SQL数据库的详尽过程
举报原因:
原因补充:

(最多只允许输入30个字)