分享好友 数据库首页 频道列表

Access转成SQL数据库的方法

其他教程  2015-09-17 15:000

首先,我说的是在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个表导入到数据库的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了。

最近又在升级一个程序,使其支持多数据库。
原来的程序数据库为SQL Server,所以使用SQL Server 的“导入和导出数据”功能将一个 SQL Server 数据库转换成了Access数据库,但其中发现了一些问题,但也找到了解决方案,一并记录于此:

1、转换程序会将SQL Server的视图转换成表,而不是Access的查询;
2、在为字段设置默认值为空字符的时候,SQL Server用”,而Access用”";
3、Access中没有GetDate()函数,应该使用Now()函数代替;
4、Access没有SQL Server用来获取客户端机器名的host_name()函数;
5、Access中没有Case When Then语句,但可以用IIF()函数模拟实现功能;
6、发现:Access使用的是Visual Basic的语言结构和函数;
7、转换程序会正确转换SQL Server字段的 IS NULL 属性;
8、Access也支持多字段的索引,只是设置方法有点特别(参见帮助);
9、SQL Server中bit型的1、0值,在Access中为True和False;
10、在Access中使用多个LEFT JOIN这样的语句时,必须用括号做相关的界定;
11、Access的SQL没有注释语句,SQL Server的/**/无法通用;
12、一条Insert语句在Access查询中正常运行,但在程序中出现“Insert Into 语句的语法错误”,后来发现原来是语句中的一个列名是Access的关键字(用[]界定可解决问题),但奇怪的是将该语句放置到Access的查询中执行却不会出错。

需要对转换后的Access数据库进行以下项目的检查,以确保与SQL Server一致:

1、主键。转换后的Access数据库都没有主键,需自己设置;
2、自增字段。转换程序会将SQL Server的自增字段转换为数字型,需手动修改为Access的“自动编号”类型;
3、默认值。转换程序不会转换SQL Server中设置的默认值,需手动设置;
4、bigint型字段。转换程序会将SQL Server的bigint转换为小数,须手动调整为Access的整型或长整型;
5、索引。转换程序不会转换索引,需手动在Access中建立索引。

在Delphi下,想让程序同时支持Access及SQL Server,需注意以下方面:

1、在Access中使用 SELECT * FROM Books WHERE RegDate = ‘2007-5-1′ 是会出现“标准表达式中数据类型不匹配”这样的错误的(RegDate是日期型),必须使用SELECT * FROM Books WHERE RegDate = #2007-5-1# 或 SELECT * FROM Books WHERE RegDate = CDate('2007-5-1′);
但在Access中,Insert、delete和update中使用单引号界定日期却是可以正常执行的。
2、尽量不要使用SQL Server的bigint类型,尤其该字段是自增的情况下;
3、Access的varchar(文本)型最大只有255,所以如果一个文本型字段大于255时,最好定义成备注型(Access中)或text型(SQL Server中);
4、在Access中一般会出现如下错误:不正常地定义参数对象。提供了不一致或不完整的信息。将相应Query的ParamCheck设为False即可;
5、Access中的逻辑值在库中为-1和0,而SQL Server中为1和0,所以写BoolField = 1这样的语句有兼容性问题,应该改为BoolField <> 0;
6、在Access中有主键的Query才可更新,而SQL Server无此要求。

以上就是Access和SQL数据库相互转换的方法及注意事项。

查看更多关于【其他教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等
可同时操作多个不同类型的数据库。 完全不用考虑数据类型的差别,再也不用想字符型字段加不加单引号。 调用非常简单,对数据库的主要操作一般只需要一行代码。 支持mssql事务回滚。 可自动生成和输出sql语句方便调试。 使用方法: 1. 修改clsDbctrl.asp文件中

0评论2023-02-10733

MySQL 、SQL MS Access、和 SQL Server 数据类型
MySQL 数据类型在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。Text 类型:数据类型描述CHAR(size)保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。VARCHA

0评论2023-02-10897

mysql导入sql文件错误#1044 - Access denied for user 'root'@'localhost'
在我的个人知识管理中,经常用到mysql数据库,wordpress搭建的worklog、搜索测试数据、我blog的测试环境等。我在自己的电脑上整了WAMP(Windows Apache MySQL PHP),哈哈,不是LAMP,用linux做桌面和周围的同事沟通还是不顺畅。十一前换了台新的笔记本,原来

0评论2023-02-09963

Oracle SQL Access Advisor 说明
 一.说明1.1 相关内容在如下官方文档中提到了一些优化工具的说明:Monitoring and Tuning the Databasehttp://docs.oracle.com/cd/E11882_01/server.112/e10897/montune.htm Using Advisors to Optimize DatabasePerformanceOracle Databaseincludes a set

0评论2023-02-09518

mysql Access denied for user ‘root’@’localhost’ (using password: YES)解决方法
这篇文章主要介绍了mysql Access denied for user ‘root’@’localhost’ (using password: YES)解决方法,本文给出详细的解决步骤及操作注释,需要的朋友可以参考下

0评论2015-11-13101

mysql ERROR 1044 (42000): Access denied for user ''@'localhost' to database
这篇文章主要介绍了mysql下提示ERROR 1044 (42000): Access denied for user ''@'localhost' to database,需要的朋友可以参考下

0评论2015-11-12162

Access数据库日常维护方法(优化)
这篇文章主要介绍了Access数据库日常维护方法(优化),需要的朋友可以参考下

0评论2015-10-26146

Access创建一个简单MIS管理系统
所谓MIS管理系统,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。MIS管理系统是一种新兴的技术,那么下文中就给大家介绍Access这个有历史的数据库系统如何创建一个简单的MIS管理系统。

0评论2015-10-08162

浅谈mssql access数据库 top分页方法
双top法相比于not in和max法,就是可以传入一条sql语句来生成分页sql语句,也可多字段排序

0评论2015-08-07116

Access连接数据源(ODBC)配置(新手必知)
win7 64位旗舰版控制面板中管理工具下的数据源(ODBC)配置竟然只有SQLServer的驱动,其他的都没有了,此问题的解决方法如下

0评论2015-06-28116

用SQL语句查找Access中某表是否存在的小技巧
在Access数据库中通过SQL语句找到某一表是否存在的确是一件困难的事,按照下面的步骤执行并在程序中通过SQL语句查询表是否存在

0评论2015-06-28143

一句sql更新两个表并可更新对应的字段值具体实现
本文用一句sql语句更新两个表并可更新对应的字段的值,具体的实现如下,有类似需求的朋友可以参考下,希望可以帮助到你

0评论2015-06-28120

Access使用总结一篇
最近帮朋友做了个小项目。遇到了一些问题,记录如下

0评论2015-06-28112

Access执行SQL的方法
Access里面怎么执行Sql呢?虽然说有界面减少了不少工作量,但是我还是习惯于执行SQL。

0评论2015-06-2863

Access数据库不能写不能更新的解决方法
本文提供了Access数据库不能写不能更新的解决方法,主要是权限原因,具体看下面的具体解决方法

0评论2015-06-2889

access数据库用sql语句添加字段,修改字段,删除字段
微软的 Access 中包含 Data Definition Language (DDL) 来建立删除表以及关系,当然了,这也可以用 DAO 来解决。

0评论2015-06-28125

自己动手把ACCESS转换到SQLSERVER的方法
这篇文章主要介绍了自己动手把ACCESS转换到SQLSERVER方法,需要的朋友可以参考下

0评论2015-06-2885

更多推荐