Access数据库导入到MSSQL 2005中,以前也尝试导入过,但是用SQL Server自带的DTS服务直接导入(先用sql脚本创建好表结构,否则会丢失标识等),会出现下列错误:
- 执行之前 (错误) 消息 错误 0xc0202009: 数据流任务: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80040E21。 已获得 OLE DB 记录。源:“Microsoft SQL Native Client” Hresult: 0x80040E21 说明:“多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。”。 (SQL Server 导入和导出向导) 错误 0xc0202025: 数据流任务: 无法创建 OLE DB 取值函数。请查看列元数据是否有效。 (SQL Server 导入和导出向导) 错误 0xc004701a: 数据流任务: 组件“目标 9 - yiran_order”(804) 在执行前阶段失败,返回的错误代码为 0xC0202025。 (SQL Server 导入和导出向导)
而如果不用sql脚本创建结构的话,直接导入是没有问题的,这个问题在网上找了下,基本没有什么资料,而且国内用SQL Server 2005的人并不多,而且大多数开发者使用的都是Express版本,他们只注重一些开发上的问题,而对于服务器管理者来说,SQL Server 2005的技术资料并不对,因此这个问题是比较难解决的,毕竟我不是MCDBA,我只是个MCSE而已。
既然SQL Server自身的Managemeng Studio无法使用,那么我们就全部通过SQL脚本来解决,因为图形化管理器也只是将一系列的管理功能通过图形化界面来生成相应的SQL脚本来操作的罢了。
网上很辛苦地找到了一个工具~真是福音啊。这个工具的原理是通过对Access数据库的分析自动生成SQL脚本,可以包含数据,也可以只有结构。然后只要放到SQL Server中执行一下查询一个数据库就建好了。关于如何在SQL Server中执行脚本以及在执行脚本时可能会出现的一些问题,请参考用 SQL 脚本将 Access 导入 MSSQL 2000/2005 方法
下载:CooSel2.0 CreateSQL v1.06
(支持SQL Server 2000/2005)
可能解压后会提示缺少控件,COMDLG32.OCX这个文件本来并不在这个压缩包里,我是将2个合并了起来。这个应该是VB的控件,如果提示缺少这个的话就执行RegOCX.exe试试(这个我没试过~因为没提示缺少),不行就把COMDLG32.OCX复制到system32下看看吧。
如果你找到了更好的工具,也请告诉我一声吧呵呵~