Access升迁到Sql server有些数据表迁迁总是失败的解决办法(表被跳过或导出失败)
- 2017-07-28 10:40:00
- zstmtony 原创
- 7680
Access升迁到Sql server有些数据表迁迁总是失败(表被跳过或导出失败)
来源:Access交流网
作者:tmtony
access自身有一个非常好的升迁工具,叫做Access升迁向导(Upsizing Wizard),可以利用升迁向导把整个Access数据库中的表升迁到SQL Server中,
但首先要注意:
1. Access 2003或 access2007不能直接升迁到sqlserver2008 , 在Access2003 及 Access2007 这2个版本环境下,无法用升迁向导将access表到SQL Server 2008的。
因为会提示以下错误: 升迁向导 只适用于Microsoft Sql Server(6.50 SP5 或更高版本)。请登录到 Sql server 数据源。
2.如果是Access 2003或Access 2007 可以考虑迁移到sql server 2000 或 Sql server 2005 ,然后再用Sql server将数据库备份,再还原到Sql server 2008 或 Sql server 2012 或 Sql server 2016
3.可考虑使用 微软的SSMA 迁移工具
SSMA( SQL Server Migration Assistant) For Access(Access 升迁向导替代工具)
最近在帮客户将一个Access2007的accdb数据升迁到Sql server是,发现有一个表死活升迁不了,使用的是Access内置的Sql server升迁工具
开始 以为是Access2007的问题,后来改为Access 2003的mdb再升迁Sql server也是失败
总是提示: 表:XX表名 表被跳过或导出失败
解决过程:
1. 查看数据表的字段,发现有些表的默认值或掩码 或格式的设置,担心这些会不会与Sql server不兼容。删除了以下的相关设置:
工作代码ID 小数位数0
标准工时 小数位数 2
原料不良 小数位数 0
工作时间 小数位数 4 掩码0.000
效率 格式 百分比
再进行升迁,还是不成功,错误如上。
2.再检查数据表的索引,发现有一个索引的索引名与字段名不同,且索引名有 / 这个特殊字符,修改了这个索引名
再尝试继续升迁,还是同样的错误。
这时突然想起以前有一次帮一个香港客户升迁繁体Access 97数据库到Sql server时遇到一个问题,就是数据表里的日期有一些乱码或不正确的日期。
3.马上将这个升迁失败的数据表打开,查看日期字段的内容,果不其然,日期有问题,有非法的日期内容,如下图所示
改正这些错误的日期,再重新升迁,终于成功!
升迁成功后的提示画面
所以从Access Migrate 到Sql server时一定要注意数据内容本身有否问题
另补充一个特别重要的经验:
除了要按日期顺排序外,也要降序排序看看日期内容有否问题。有些日期是太小,有些日期是太大而导致无法导入
另还要检查 有否 2月 有 2月30日的,其它月份 有32日的
另还要检查 Sql server中是否已经存在同名的表名
另一个经验,当不知道是什么原因导致Access升迁到sql server失败时,最快的方法,是逐个删除一些字段,看看删除哪个字段之后,升迁成功了,就可判断是这个字段的数据出现问题了。逐个排除法。
还有可能是sql server数据库有问题,会导致所有表升迁不了,要尝试一下升迁到一个新的数据库是否正常,提成除sql server这个数据库的问题
再补充一个经验:
如果是日期字段(但内容是保存时间的)经常会出现升迁不了,出错,找来找去找不到原因。解决办法很简单,只要把时间按升序排序
如果这些时间排在00:00:00 前面的 时间肯定有问题,删除这些记录或手工改一下记录就可成功移植了。
正常 排序 ,空的在最前面,然后是00:00:00 但这些错误的时间会排在00:00:00 前面,有可能是有隐藏的日期如1899/01/01 之类的日期隐藏了
补充阅读:
在Access的早期版本中,Microsoft就开发了Upsizing Wizard,通过该向导可以很容易地将Access数据表转换成SQL Server数据表。当进行Access数据表升迁时,该向导提供了易于操作的界面用于选择数据表和指定附加选项。但是,该向导并不能对所有的版本进行升迁。目前,有一款新的转换工具——SQL Server迁移助手(SQL Server Migration Assistant,SSMA),它不仅可以完成简单的上传任务,而且还可以将Access中的一些特定选项(如Allow Zero Length属性)转换成SQL Server中类似的属性。此外,SSMA也可以在需要转换时给出一些智能推荐,如在表中添加rowversion列能够确保行的唯一性。
由于SSMA更适合现在的表升迁的需要,因此没有理由再使用原来的Upsizing Wizard。SSMA可以从Microsoft下载中心免费下载。另外,读者可以在本书的后面发现,通过Access Web应用也可以将Access数据导入到SQL Server表中,而且不需要配置步骤,要比SSMA和Upsizing Wizard更简单。
- office课程播放地址及课程明细
- Excel Word PPT Access VBA等Office技巧学习平台
- 将( .accdb) 文件格式数据库转换为早期版本(.mdb)的文件格式
- 将早期的数据库文件格式(.mdb)转换为 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 数据库引擎和访问连接引擎以阻止对远程数据库的访问(remote table)
- Access 365 /Access 2019 数据库中哪些函数功能和属性被沙箱模式阻止(如未启动宏时)
- Access Runtime(运行时)最全的下载(2007 2010 2013 2016 2019 Access 365)
- Activex控件或Dll 在某些电脑无法正常注册的解决办法(regsvr32注册时卡住)
- office使用部分控件时提示“您没有使用该ActiveX控件许可的问题”的解决方法
- RTF文件(富文本格式)的一些解析
- Access树控件(treeview) 64位Office下出现横向滚动条不会自动定位的解决办法
- Access中国树控件 在win10电脑 节点行间距太小的解决办法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 树控件 ListView列表等64位MSCOMMCTL.OCX控件下载
- VBA或VB6调用WebService(直接Post方式)并解析返回的XML
- 早期PB程序连接Sqlserver出现错误
- MMC 不能打开文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版
- sql server连接不了的解决办法
- localhost与127.0.0.1区别
- Roych的浅谈数据库开发系列(Sql Server)
- sqlserver 自动备份对备份目录没有存取权限的解决办法
- 安装Sql server 2005 express 和SQLServer2005 Express版企业管理器 SQLServer2005_SSMSEE
联系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |