网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.从数据库中随机抽N条记录.
.SQL高手篇:精妙SQL语句介绍.
.个人经验总结:数据挖掘与数据抽.
.带你轻松接触数据库命名规范的相.
.关于SQL Server 2000对XML支持的.
.经常用到的交叉表问题,一般用动态.
.数据库迁移的几种常用方式及优缺.
.sql server 带列名导出至excel.
.sql server日期时间函数.
.循环插入一定时间范围内的随机日.
.sql server存储过程、存储函数的.
.实例讲解如何实现互联网上数据库.
.特殊数据(SQL).
.系统恢复后,通过sqlserver服务管.
.如何得到当前所在的sql的数据库名.
.深入探讨SQL Server 2005噪声字词.
.微软SQL Server 2008 CTP版的特性.
.如何通过触发器实现数据库的即时.
.如何修改数据库表或存储过程的所.
.轻松掌握Oracle数据库Where条件执.

SQL Server导入excel数据之Bug!

发表日期:2007-8-26


最近帮朋友把他整理的excel数据导入到Sql Server中,失败,报错如下:作为源列4(“产品说明”)的数据对于所指定的缓冲区来讲太大。
我的excel文件中有一列叫“产品说明”,就是一些文字。Sql server处理导excel数据流程是这样的,它会先创建目标表,再把excel数据写入缓冲区,然后再把缓冲区数据写入目标表。问题就在创建目标表和写入缓冲区,sql server会根据现在的excel中的数据格式来写入缓冲区和创建目标表。比如excel中有一列为编号,里面是数字,sqlserver就会在目标表里建一列叫“编号”,为float类型.
而对于我的excel文件中的"产品说明"这一列,是文字,那sql server如何建立目标列或缓冲区呢?它怎么知道该把目标建立成varchar还是text呢?经过测试,发现sql server是这样做的,他会取excel文件中的前8行(2的三次方),然后算这8行里“产品说明”的最大长度,如果这8行里最长的 > 255,则目标列和缓冲区就会建立成ntext类型,否则就建立成nvarchar类型。这样,问题就来了!假设我的excel文件前8行“产品说明”中都 < 255,则目标和缓冲区就被建立为varchar(255)类型了(这里说明一下,你可以修改目标表的字段类型,但缓冲区长度或类型是无法修改的)。而如果我的第10行里“产品说明”的长度超过了255,则sql server往缓冲区里写的时候,自然就发生了如上的错误:数据对于指定的缓冲区来讲太大。
这样,我们导数据当然就失败了!这个也许不能算bug,因为只是实现得不好(取某列前8行的最大长度并不能真正代表所有行,我想microsoft的工程师为了简单或者提高性能才这样做的);也许算是bug,因为不知情的用户导数据失败了。而且不知道为何而失败的!
公理自在人心,让大家或那些工程师们去评判吧!
上一篇:sql server 2005 数据库的检查与修复 人气:2869
下一篇:MS SQL Server存储过程参数的隐式类型转换 人气:3690
浏览全部SQL Server的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐