Access转成SQL数据库的方法

首先,我说的是在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)

相关推荐

  • php结合ACCESS的跨库查询功能

    问题说明: 有时需要在两个或三个数据库的表中,通过相关关键字,查询获取所需记录集,用一般的SQL查询语句是实现不了的,可通过ACCESS的跨库查询功能实现. 解决方法: 例如"装材类型"和"装材"两张表是在不同的数据库中的,具体查询方法,如下: 复制代码 代码如下: @"Select * from 装材类型 as a INNER JOIN [;database=" AppDomain.CurrentDomain.BaseDirectory &qu

  • mysql Access denied for user ‘root’@’localhost’ (using password: YES)解决方法

    今天在启动mysql时出现以下问题: [root@www ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 网上的答案是各种各样的,最终解决问题的方法总结为以下,好多都是没有设置初始密码造成此问题的. 解决方法如下: [root@www ~]# service mysqld stop #先关闭mysql服务

  • Javascript连接Access数据库完整实例

    本文实例讲述了Javascript连接Access数据库的方法.分享给大家供大家参考.具体实现方法如下: var roc = roc || {}; roc.db = roc.db ||{}; //创建一个连接 roc.db.createDb = function(){ var conn = new ActiveXObject("ADODB.Connection"), fso = new ActiveXObject("Scripting.FileSystemObject&quo

  • C#操作Access通用类实例

    本文实例讲述了C#操作Access通用类.分享给大家供大家参考.具体如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using Syst

  • Swift中的Access Control权限控制介绍

    如果您之前没有接触过权限控制,先来听一个小故事: 小明是五道口工业学院的一个大一新生,最近他有点烦恼,因为同屋经常用他的热水壶,好像那是自己家的一样,可是碍于同学情面,又不好意思说.直到有一天,他和学姐小K吐槽. 学姐听了之后,说:大学集体生活里面,大部分东西都是默认室友可以共用的.如果你不想别人拿,我可以帮你做封印,只要打上private标记,它们就看不到你的东西,更加用不了你的东西了. 小明说哇靠学姐你还会妖法...... Swift语言从Xcode 6 beta 5版本起,加入了对权限控制

  • C#通过oledb访问access数据库的方法

    本文实例讲述了C#通过oledb访问access数据库的方法.分享给大家供大家参考.具体分析如下: 这里演示了如何在 C# 中使用 Microsoft Access 数据库.包括如何创建数据集并从数据库向该数据集添加表. // OleDbSample.cs // 若要从命令行生成此示例,请使用命令: // csc oledbsample.cs using System; using System.Data; using System.Data.OleDb; using System.Xml.Se

  • SQL Server数据复制到的Access两步走

    我们今天主要向大家讲述的是把SQL Server数据复制到的Access数据库中的实际操作步骤,把SQL Server数据库中的某些数据复制到的Access数据库中,其表的主要结构是相同的,不要提用openrowset,因为Access文件和SQL Server不在一台机器上. 初步的想法是用两个recordset,一个从SQL取数据,一个往Access里面插入数据 因为表的字段比较多,所以只好用一个循环 while (!m_pRecordset_sql->adoEOF) { m_pRecord

  • 30 个很棒的PHP开源CMS内容管理系统小结

    1. AdaptCMS AdaptCMS Lite 是一个开源的CMS系统,主要特点是易用,而且可以轻松和其他系统接驳,提供简单的扩展定制途径,一个简单而且功能强大的模板系统,以及更多很有用的功能. 2. OneCMS OneCMS是一个适合管理游戏的内容管理系统.它可以很容易的通过自己的一些功能诸如额外的论坛软件,定制区域,定制分类等等来管理站点内的内容.游戏. 3. Pluck Pluck 是一个小型而且简单的内容管理系统,使用 PHP 开发.有了 Pluck 你可以轻松的管理自己的网站,无

  • Apache服务器中.htaccess的基本配置总结

    .htaccess文件(或者"分布式配置文件"提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户,所能使用的命令受到限制.管理员可以通过Apache的AllowOverride指令来设置. - 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令. - .htaccess必须以ASCII模式上传,最好将其权限设置为644. 错误文档的定位 常用的客户端请求错误返回代码: 401 Authorizat

  • SQLite数据库管理系统-我所认识的数据库引擎

    SQLite 是一款轻量级的.被设计用于嵌入式系统的关联式数据库管理系统.SQLite 是一个实现自我依赖.纯客户端.零配置且支持事务的数据库引擎.它由D. Richard Hipp首次开发,目前已是世界上最广泛部署的开源数据库引擎. 本文中,我们将介绍如下内容: 创建一个SQLite 数据库 复制代码 代码如下: SQLiteConnection conn = new SQLiteConnection("Data Source=mytest.s3db"); conn.Open();

  • Access创建一个简单MIS管理系统

    MIS管理系统也是一种很实用的管理系统,可以将很多东西都放的井井有条,便于大家查找,下文中就以大家家中都有的CD.VCD为例,为大家介绍如何建立一个MIS管理系统,使这些东西有条理. Access创建MIS管理系统: 1.准备工作--确定数据库需要的表和字段 由于我们要创建的MIS系统是一个小管理系统,因此,不必要建立几个表,只需一个表就行了.该表的字段有:编号.影片名称.领衔主演.导演.发行公司.影片类型.是否获奖.其中"编号"为主关键字,该关键字唯一确定每个记录的字段或字段集. 2

随机推荐