文本、Excel、Access数据导入SQL Server2000的方法
在昨日的项目维护中,遇到了一个挑战。由于各种原因,数据在不同的服务器上呈现出不一致的状态。为此,我们必须重新清洗数据库,并将整理后的数据一次性导入。数据源为文本文件,每行记录都以逗号分隔,字段则被双引号所包围。
面对这样的数据格式,虽然项目已经开发了一个应用程序可以类似的文本文件并将其存入数据库,但显然这种方式效率不高。为了节约时间,我们决定采取一种更快捷的方法:先将文本文件导入Excel,再将其导入SQL Server 2000。
操作过程是从晚上9点开始的。我们打开Excel 2007,选择打开数据源的文本文件。系统此时会引导我们进入“文本导入向导”。在第一步,我们需要选择字段的分割方式,本例中我们选择“分割符号”,并适当调整文本文件的编码方式以确保数据导入的准确性。第二步是选择分割符号,也就是识别文本的符号。这个过程非常顺利,当初还在考虑如何处理双引号的问题,但现在这个问题已经迎刃而解。第三步是设置每列的数据类型,包括常规、文本、日期等。点击完成,数据的导入便大功告成。
在此过程中还是需要注意一些细节。例如,如果数据中的某个字段是“001800”,在导入时如果选择了“常规”类型,前面的“00”可能会被系统自动去掉。如果需要保留这些数字前的零,就应该选择“文本”类型进行导入。源数据中有时会出现格式问题,特别是在导入到强约束的数据库表单时可能会出现错误。这时需要根据报错信息回头检查Excel中的数据,比如测试中遇到的逗号出现在双引号内部导致数据无法导入的问题,以及多个双引号的现象等。
鉴于上述可能出现的问题,我推荐使用Aess作为中间环节来导入SQL Server。Aess的数据类型与SQL Server更为相似,这样在将文本文件导入Aess时,它可以更严格地检验数据的合法性,从而避免后续可能出现的麻烦。导入方法也很简单,只需打开Aess 2007,选择外部数据-文本文件,然后按照向导完成即可。在此过程中,还需要注意一些细节问题,例如某些文本文件在导入时在Aess中可能会出现首行为乱码的情况,此时只需在源文本文件中首行开头回车建立空行即可解决。
通过SQL Server企业管理器,选中需要重新导入的表单,右键选择导入数据即可完成操作。在SQL Server导入数据时,也会严格匹配记录的数据类型是否匹配,如果不匹配,则此批次的数据导入会失败。关于SQL Server导入数据的更多技巧,还需要我继续学习和。Office系列的活用和MS软件间的巧妙结合确实非常强大,值得我们慢慢去挖掘。
编程语言
- 文本、Excel、Access数据导入SQL Server2000的方法
- PHP Curl出现403错误的解决办法
- PHPMailer使用教程(PHPMailer发送邮件实例分析)
- JavaScript弹窗基础篇
- js动态生成form 并用ajax方式提交的实现方法
- 读取纯真IP数据库的公用组件接口QQWry.NET
- php htmlspecialchars()与shtmlspecialchars()函数的深入分析
- bootstrap中selectpicker下拉框使用方法实例
- vue中动态添加class类名的方法
- PHP 面向对象程序设计(oop)学习笔记 (四) - 异常
- JavaScript指定断点操作实例教程
- ASP.NET深度复制和浅度复制分析
- Fckeditor编辑器内容长度限制统计实现方法
- ASP.NET中DropDownList下拉框列表控件绑定数据的4种方
- 浅谈Vue.js 1.x 和 2.x 实例的生命周期
- PHP连接MySQL的2种方法小结以及防止乱码