excel的电话号码如何导入到SQL中

zeliangzhang19801124 2009-07-24 12:06:09
加精
EXCEL有一个字段数据如下,
用户电话
15855656158
15083281111
15905664713
15705660417
0371-3355588
13966247559
0371-2856565
如何用SQL语句将数据原封不对的导入到SQL server数据库中
...全文
7155 135 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
135 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lee279394211 2012-10-06
  • 打赏
  • 举报
回复
强帖,先顶了再看,谢谢
luo960253236 2012-08-14
  • 打赏
  • 举报
回复
不用写代码也行的,不过写代码的真的很牛了
zmw2000 2012-05-07
  • 打赏
  • 举报
回复
好多的高手哦
  • 打赏
  • 举报
回复
对,微软直接将他的产品都集成起来了
lovezx1028 2010-01-29
  • 打赏
  • 举报
回复
shoucang
vbz001 2009-11-02
  • 打赏
  • 举报
回复
还是学到不少 不过我用sql server 2005进入从数据库中导出怎么做有点问题 说数据类型不对 怎么搞
bdx808 2009-11-01
  • 打赏
  • 举报
回复
mark!
appleller 2009-10-31
  • 打赏
  • 举报
回复
一次性的手工导入就好了

常用的写个工具吧
langzhiwang888 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 feixianxxx 的回复:]
SQL code1、在SQL数据库中直接从Excel里面查询数据:select*fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)2、从Excel文件中,导入数据到SQL数据库中,select*into 表fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)3、从SQL数据库中,导出数据到Excel(excel存在),insertintoOPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)select*from 表4、从SQL数据库中,导出数据到Excel(excel不存在),---- 导出表EXEC master..xp_cmdshell'bcp 数据库名.dbo.表名 out "c: est.xls" /c -/S"服务器名" /U"用户名" -P"密码"'---- 导出查询语句EXEC master..xp_cmdshell'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout "c: est.xls" /c -/S"服务器名" /U"用户名" -P"密码"'5、导入导出的存储过程--下面是导出真正Excel文件的方法:(请将一下所有代码复制到存储过程中)ifexists (select*from dbo.sysobjectswhere id=object_id(N'[dbo].[p_exporttb]')andOBJECTPROPERTY(id, N'IsProcedure')=1)dropprocedure[dbo].[p_exporttb]GO/**//*--数据导出EXCEL

导出表中的数据到Excel,包含字段名,文件为真正的Excel文件
,如果文件不存在,将自动创建文件
,如果表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型

--邹建 2003.10(引用请保留此信息)--*//**//*--调用示例

p_exporttb @tbname='地区资料',@path='c:',@fname='aa.xls'
--*/createproc p_exporttb@tbname sysname,--要导出的表名@pathnvarchar(1000),--文件存放目录@fnamenvarchar(250)=''--文件名,默认为表名asdeclare@errint,@srcnvarchar(255),@descnvarchar(255),@outintdeclare@objint,@constrnvarchar(1000),@sqlvarchar(8000),@fdlistvarchar(8000)--参数检测ifisnull(@fname,'')=''set@fname=@tbname+'.xls'--检查文件是否已经存在ifright(@path,1)<>''set@path=@path+''createtable #tb(abit,bbit,cbit)set@sql=@path+@fnameinsertinto #tbexec master..xp_fileexist@sql--数据库创建语句set@sql=@path+@fnameifexists(select1from #tbwhere a=1)set@constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'+';CREATE_DB="'+@sql+'";DBQ='+@sqlelseset@constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES'+';DATABASE='+@sql+'"'--连接数据库exec@err=sp_oacreate'adodb.connection',@obj outif@err<>0goto lberrexec@err=sp_oamethod@obj,'open',null,@constrif@err<>0goto lberr/**//*--如果覆盖已经存在的表,就加上下面的语句
--创建之前先删除表/如果存在的话
select @sql='drop table ['+@tbname+']'
exec @err=sp_oamethod @obj,'execute',@out out,@sql
--*/--创建表的SQLselect@sql='',@fdlist=''select@fdlist=@fdlist+',['+a.name+']'
,@sql=@sql+',['+a.name+']'+casewhen b.namelike'%char'thencasewhen a.length>255then'memo'else'text('+cast(a.lengthasvarchar)+')'endwhen b.namelike'%int'or b.name='bit'then'int'when b.namelike'%datetime'then'datetime'when b.namelike'%money'then'money'when b.namelike'%text'then'memo'else b.nameendFROM syscolumns aleftjoin systypes bon a.xtype=b.xusertypewhere b.namenotin('image','uniqueidentifier','sql_variant','varbinary','binary','timestamp')andobject_id(@tbname)=idselect@sql='create table ['+@tbname+']('+substring(@sql,2,8000)+')'
,@fdlist=substring(@fdlist,2,8000)exec@err=sp_oamethod@obj,'execute',@out out,@sqlif@err<>0goto lberrexec@err=sp_oadestroy@obj--导入数据set@sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES;IMEX=1
;DATABASE='+@path+@fname+''',['+@tbname+'$])'exec('insert into'+@sql+'('+@fdlist+') select'+@fdlist+' from'+@tbname)return

lberr:exec sp_oageterrorinfo0,@src out,@desc out
lbexit:selectcast(@errasvarbinary(4))as 错误号
,@srcas 错误源,@descas 错误描述select@sql,@constr,@fdlistgoifexists (select*from dbo.sysobjectswhere id=object_id(N'[dbo].[p_exporttb]')andOBJECTPROPERTY(id, N'IsProcedure')=1)dropprocedure[dbo].[p_exporttb]GO/**//*--数据导出EXCEL

导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件
如果文件不存在,将自动创建文件
如果表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型

--邹建 2003.10(引用请保留此信息)--*//**//*--调用示例

p_exporttb @sqlstr='select * from 地区资料'
,@path='c:',@fname='aa.xls',@sheetname='地区资料'
--*/createproc p_exporttb@sqlstrvarchar(8000),--查询语句,如果查询语句中使用了order by ,请加上top 100 percent@pathnvarchar(1000),--文件存放目录@fnamenvarchar(250),--文件名@sheetnamevarchar(250)=''--要创建的工作表名,默认为文件名asdeclare@errint,@srcnvarchar(255),@descnvarchar(255),@outintdeclare@objint,@constrnvarchar(1000),@sqlvarchar(8000),@fdlistvarchar(8000)--参数检测ifisnull(@fname,'')=''set@fname='temp.xls'ifisnull(@sheetname,'')=''set@sheetname=replace(@fname,'.','#')--检查文件是否已经存在ifright(@path,1)<>''set@path=@path+''createtable #tb(abit,bbit,cbit)set@sql=@path+@fnameinsertinto #tbexec master..xp_fileexist@sql--数据库创建语句set@sql=@path+@fnameifexists(select1from #tbwhere a=1)set@constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'+';CREATE_DB="'+@sql+'";DBQ='+@sqlelseset@constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES'+';DATABASE='+@sql+'"'--连接数据库exec@err=sp_oacreate'adodb.connection',@obj outif@err<>0goto lberrexec@err=sp_oamethod@obj,'open',null,@constrif@err<>0goto lberr--创建表的SQLdeclare@tbname sysnameset@tbname='##tmp_'+convert(varchar(38),newid())set@sql='select * into ['+@tbname+'] from('+@sqlstr+') a'exec(@sql)select@sql='',@fdlist=''select@fdlist=@fdlist+',['+a.name+']'
,@sql=@sql+',['+a.name+']'+casewhen b.namelike'%char'thencasewhen a.length>255then'memo'else'text('+cast(a.lengthasvarchar)+')'endwhen b.namelike'%int'or b.name='bit'then'int'when b.namelike'%datetime'then'datetime'when b.namelike'%money'then'money'when b.namelike'%text'then'memo'else b.nameendFROM tempdb..syscolumns aleftjoin tempdb..systypes bon a.xtype=b.xusertypewhere b.namenotin('image','uniqueidentifier','sql_variant','varbinary','binary','timestamp')and a.id=(select idfrom tempdb..sysobjectswhere name=@tbname)if@@rowcount=0returnselect@sql='create table ['+@sheetname+']('+substring(@sql,2,8000)+')'
,@fdlist=substring(@fdlist,2,8000)exec@err=sp_oamethod@obj,'execute',@out out,@sqlif@err<>0goto lberrexec@err=sp_oadestroy@obj--导入数据set@sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES
;DATABASE='+@path+@fname+''',['+@sheetname+'$])'exec('insert into'+@sql+'('+@fdlist+') select'+@fdlist+' from ['+@tbname+']')set@sql='drop table ['+@tbname+']'exec(@sql)return

lberr:exec sp_oageterrorinfo0,@src out,@desc out
lbexit:selectcast(@errasvarbinary(4))as 错误号
,@srcas 错误源,@descas 错误描述select@sql,@constr,@fdlistgo000
(请您对文章做出评价)
[/Quote]


强啊
sea0302 2009-10-25
  • 打赏
  • 举报
回复
28楼的方法还是不错的,操作简单
IMUSTWorking 2009-10-22
  • 打赏
  • 举报
回复
SQL Server Data Import/Exprot工具试试。
kajaje 2009-10-21
  • 打赏
  • 举报
回复
MSSQL2005注意要开启openrowset选项
walkingboy 2009-10-21
  • 打赏
  • 举报
回复
不错,学习了。
marysa 2009-10-21
  • 打赏
  • 举报
回复
学习中。。。。。。
hanyise520 2009-10-18
  • 打赏
  • 举报
回复
xls里没有的字段,导入进去会是什么!
cen1934 2009-10-17
  • 打赏
  • 举报
回复
好贴,学习+支持
fly_mefly 2009-10-16
  • 打赏
  • 举报
回复
SELECT * into dbo.tabel5
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\book.xls";Extended properties=Excel 5.0')...[Sheet1$]
这可以
  • 打赏
  • 举报
回复
虽有许多的参考何时价值,但还不能全部解决问题,如有的列有数字和字符,但在其他列就有数字和科学记数法,人知如何解决。
  • 打赏
  • 举报
回复
便还不能有效的解决问题,谁还有好的方法。
cqhweb 2009-07-29
  • 打赏
  • 举报
回复
好东东...
加载更多回复(110)

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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