Access转换成SQL Server需要注意事项整理_数据库其它

一,首先,我说的是在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改为SQL需要注意哪几个地方 
数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。 
所有的默认值都丢失了。主要是数字类型和日期类型。 
所有now(),time(),date()要改成getdate()。 
所有datediff(‘d‘, time1, time2)要改成datediff(day, time1, time2) 
有可能一些true/false类型不能使用,要变为1/0。 
备注类型要通过cast(column as varchar)来使用。 
CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。 
isnull(rowname)要改成rowname = null 
ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号! 
转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。有时用smalldatetime型时,转化失败,而用datetime型时,转化成功。 
对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:“delete * from user where id=10“,而对SQL SERVER数据库进行删除是用:“delete user where id=10“. 
日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。 
在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。 

ACCESS转SQL SERVER的数据库的几点经验 
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“. 
4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。 
5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。

时间: 2024-12-31 07:24:14

Access转换成SQL Server需要注意事项整理_数据库其它的相关文章

转换数据库-数据库:Oracle数据库转换成SQL server数据库

问题描述 数据库:Oracle数据库转换成SQL server数据库 把oracle数据库转换成SQL server数据库(2008 r2)版本的,数据迁移,大概百万条数据,有什么好的办法或者是执行语句嘛: 解决方案 我只知道可以把脚本倒出来 然后在sql中执行 解决方案二: http://wenku.baidu.com/link?url=TA7z0XmVyfKHyTQqiPwE6gAdkKbFG7ngBBL75mvjbRbAGFVElPyxOLFSvNT4YskRl8KLdeVdOlHc8a6

mysql-mySQL的limit分页怎么转换成SQL server语句

问题描述 mySQL的limit分页怎么转换成SQL server语句 String sql="select " + str + " from product,shop where product.shop_id=shop.shop_id " + " limit " + (page *size) + "," + size;//通过limit来达到分页的效果_ 其中定义了private String str = "pr

SQL SERVER的字段类型说明_数据库其它

SQL SERVER提供的说明.  bit:0或1的整型数字  int:从-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型数字  smallint:从-2^15(-32,768)到2^15(32,767)的整型数字  tinyint:从0到255的整型数字  decimal:从-10^38到10^38-1的定精度与有效位数的数字  numeric:decimal的同义词  money:从-2^63(-922,337,203,685,477.5808)到2^

Access与sql server的语法区别总结_数据库其它

下边列出sql server与access的语法差别,方便更换程序数据库时查询. 日期分隔符号 access:英镑符(#) sql server:撇号(') Boolean 常量 access:True.False:On.Off:Yes.No:整数:-1(真).0(假). sql server:整数:1(真).0(假) 字符串连接 access:和号(&) sql server:加号(+) 通配符 access:星号(*)与零个或更多字符匹配.  问号(?)与单个字符匹配. 叹号(!)意味着不在

SQL server 2005的表分区_数据库其它

下面来说下,在SQL SERVER 2005的表分区里,如何对已经存在的有数据的表进行分区,其实道理和之前在http://www.cnblogs.com/jackyrong/archive/2006/11/13/559354.html说到一样,只不过交换下顺序而已,下面依然用例子说明:   依然在c盘的data2目录下建立4个文件夹,用来做4个文件组,然后建立数据库 use masterIF  EXISTS (SELECT name FROM sys.databases WHERE name =

Access与MS SQL Server数据库的相互转换

  一.将Access 数据库数据移植转换为sql server 2000 第一步,开启SQLSERVER 2000服务管理,打开"企业管理器",新建一个数据库,名称为"Access数据转换"; 第二步,运行"导入和导出数据",打开"DTS导入/导出向导".选择数据源时,有两种选择:"Driver do Microsoft Access(*.mdb)"或"Microsoft Access"

oracel-如何把下面的oracle中的存储过程转换成sql的?

问题描述 如何把下面的oracle中的存储过程转换成sql的? create or replace procedure BJ_MAXCASENO_Get(InCount in number, OutMaxCaseNO out number) as tem number; begin select max(caseno) into tem from BJ_MAXCASENO; if tem is null then tem := 0; -- 没有数据时新增0进入 insert into BJ_MA

date-java Date转换成sql Date出现时间错误的问题

问题描述 java Date转换成sql Date出现时间错误的问题 SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd"); java.util.Date d = null; d = format.parse(newsDate); java.sql.Date date = new java.sql.Date(d.getTime()); 代码是这样的. java Date数据格式是 2015-10-08 09:21:33

UML的类图可以转换成SQL吗?

问题描述 UML的类图可以转换成SQL吗? 例如我画了一个UML的类图我可以把这个图转换成SQL文件吗?转换成SQL我直接就可以在数据库里生成表了 解决方案 我的认知uml类图转sql应该是不行的,我知道e-r图可以直接转sql