【Excel导入SQL Server菜鸟问题】为什么既有文本又有数字的列导入后会显示NULL

fanz2000 2005-04-25 03:26:29
发现Excel表中 凡是 某列 既有数字 又有文本
导入到SQL server中后 是数字的就会显示NULL
我在Excel2003里 选中整列
点 右键 选“设置单元格格式”,设成“文本型“
但是导入后 改列的 纯数字的 还是选择 为NULL
请问怎么解决????????????????????????
因为出问题的数据 还很多
不能 一个一个改?
...全文
439 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanz2000 2005-04-25
  • 打赏
  • 举报
回复
谢谢 netcoder(朱二)
搞定了!
揭帖 加分!
netcoder 2005-04-25
  • 打赏
  • 举报
回复
使用SQL语句,如下面的例子:

select * INTO 表名 from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;IMEX=1;database=f:\Book1.xls;','select * from [Sheet1$]')
netcoder 2005-04-25
  • 打赏
  • 举报
回复
转:
混用数据类型时应注意的事项

如上文所述,ADO 必须猜测 Excel 工作表或范围中各列的数据类型。(这不受 Excel 单元格格式设置的影响

。)如果同一列中既有数字值,也有文本值,会出现严重的问题。Jet 和 ODBC 提供程序将返回占多数的类型

的数据,但对于占少数的数据类型,则会返回 NULL(空)值。如果该列中两种类型数据的数量相等,提供程序

将优先选择数字型数据,放弃文本型数据。

例如:
在被扫描的八 (8) 行中,如果该列包含五 (5) 个数字值和三 (3) 个文本值,则提供程序将返回五 (5) 个数

字和三 (3) 个空值。
在被扫描的八 (8) 行中,如果该列包含三 (3) 个数字值和五 (5) 个文本值,则提供程序将返回三 (3) 个空

值和五 (5) 个文本值。
在被扫描的八 (8) 行中,如果该列包含四 (4) 个数字值和四 (4) 个文本值,则提供程序将返回四 (4) 个数

字和四 (4) 个空值。
因此,如果列中包含不同类型的值,唯一的解决方法是将该列中的数字值存储为文本,然后在需要时使用

Visual Basic VAL 函数或等效的函数在客户端应用程序中将其转换回数字。

对于只读数据,若要解决此问题,可在连接字符串的“Extended Properties”部分设置“IMEX=1”,启用导入

模式。这将强制使用ImportMixedTypes=Text 注册表设置。但在此模式下,执行更新操作时可能会出现意外的

结果。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧