数据导入的问题! 在线等! 一解决马上送分!

Selectau_fname 2004-10-10 10:37:09
问题: 将Excel导入到SQL中(导入已经建立的SQL表)


1、在建立Excel表的时候要把SQL表中的列名加上吗?
2、Excel表中的没有数据的项插入到SQL中是用NULL表示吗?还是有别的表示法?
3、怎样可以把数据快速的导入到SQL中,不管用什么方法!


先问这几个问题!
...全文
126 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
谢谢啊


非常感谢!
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
肯定有id这个列不会错的,可能是有别的原因吧!
yjdn 2004-10-10
  • 打赏
  • 举报
回复
把你SQL中的字段类型设为整型就可以了
好了,今晚休息了,没空帮你了,晚安
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
还有我导入到SQL中的数据有个字段名为 : id,在EXCEL中输入的是1,2,3...

现在导入到SQL中都是显示为1.0 2.0 3.0 等,怎么把后面的去掉
yjdn 2004-10-10
  • 打赏
  • 举报
回复
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 8.0;HDR=NO;DATABASE=c:\xj.xls'--c:\test.xls是excel文件名
,sheet1$) a
where a.id<>''


服务器: 消息 207,级别 16,状态 3,行 2
列名 'id' 无效。


这个怎么不好用?还是...?
------------------------
我用起来没问题,是不是你没id这个列
yjdn 2004-10-10
  • 打赏
  • 举报
回复
OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\bxstudent.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
--这个东西其实就相当于一个表,你就像对表一样操作就行了

如果你的表中字段和excel中一样的话,顺序也一样的话
insert into SQL表 select 字段1,字段2.....(为防止导出顺序出错,最好写上) from 表(也就是上面那段)
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 8.0;HDR=NO;DATABASE=c:\xj.xls'--c:\test.xls是excel文件名
,sheet1$) a
where a.id<>''


服务器: 消息 207,级别 16,状态 3,行 2
列名 'id' 无效。


这个怎么不好用?还是...?
yjdn 2004-10-10
  • 打赏
  • 举报
回复
你不是说多了一条空的记录吗?加一个条件就可以把那个记录去掉了
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
我要怎样才能把现在导入到表 #a 中的数据,放入我现在要用的表中!
yjdn 2004-10-10
  • 打赏
  • 举报
回复
就相当于一个查询语句加多一个条件

where a.字段名<>''

--这个是说,这个字段不为空选出来,看你两个角了,这个应该懂吧?
字段名是说你表中某个字段的名字啊
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
where 字段名<>''


这个的作用是怎么,怎么更改?
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复


搞错拉,呵呵,太急拉!
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 8.0;HDR=NO;DATABASE=c:\test.xls'--c:\test.xls是excel文件名
,sheet1$) a
where 字段名<>''

--试试这个






服务器: 消息 207,级别 16,状态 3,行 2
列名 '字段名' 无效。
yjdn 2004-10-10
  • 打赏
  • 举报
回复
如果不行,加一个a.字段名试试
yjdn 2004-10-10
  • 打赏
  • 举报
回复
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 8.0;HDR=NO;DATABASE=c:\test.xls'--c:\test.xls是excel文件名
,sheet1$) a
where 字段名<>''

--试试这个
yjdn 2004-10-10
  • 打赏
  • 举报
回复
你要是想保持原有的序列 话,就要查询的时候,用列名代替*

列出你列名的顺序,就可以了
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
最后怎么还多了一条空的记录???

是不是导入数据的时候自动生成的,那么怎么能在导入的时候自动去掉呢?
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
现在可以导入成功!

谢谢先!


但是表的顺序都打乱了,列的顺序
yjdn 2004-10-10
  • 打赏
  • 举报
回复
你先做一个查询看看,查询成功你再导入
Selectau_fname 2004-10-10
  • 打赏
  • 举报
回复
怎么不对啊?

本人很菜,请大哥讲的详细点!

呵呵
加载更多回复(9)

34,576

社区成员

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

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