把csv文件中的数据导入SQL Server的方法

2014-11-24 08:43:59 · 作者: · 浏览: 1
把csv文件中的数据导入SQL Server的方法
[sql] 
--修改高级参数  
sp_configure 'show advanced options',1  
go  
  
--允许即席分布式查询  
sp_configure 'Ad Hoc Distributed Queries',1  
go  
  
--如果配置的值不在合理范围(在最小值最大值范围内),那么可以强制覆盖  
reconfigure with override    
go  
  
sp_configure 'xp_cmdshell',1  
go  
reconfigure  
go  
  
  
--创建数据库  
create database wc   
go  
  
  
use wc  
go  
  
--建表  
create table xxdd  
(  
aa nvarchar(1000),  
bb nvarchar(1000),  
cc nvarchar(1000),  
dd nvarchar(1000),  
ee nvarchar(1000),  
ff nvarchar(1000)  
)  
go  
  
  
/* 这里建立一个c:\wc.csv  文件,内容如下:  
aa,bb,cc,dd,ee,ff  
42222222223432432432,32432432432432432432,2332432432,32432432432,32432432,23432432  
42222222223432432432,32432432432432432432,2332432432,32432432432,32432432,23432432  
42222222223432432432,32432432432432432432,2332432432,32432432432,32432432,23432432  
42222222223432432432,32432432432432432432,2332432432,32432432432,32432432,23432432  
  
*/  
  
--导出格式文件,这个是关键,数据库名称,表名称,用户名和密码,服务器ip和端口  
--都改成你自己的  
exec xp_cmdshell 'bcp wc.dbo.xxdd format nul -t "," -f c:\wc.fmt -c -Usa -Pyupeigu -S 192.168.1.106,1433'  
go  
  
  
--先查看要导入的数据  
select *  
from   
openrowset(bulk 'c:\wc.csv',             --要读取的文件路径和名称   
                formatfile='c:\wc.fmt',  --格式化文件的路径和名称  
                  
                firstrow = 2,            --要载入的第一行,由于第一行是标题,所以从2开始  
                --lastrow  = 1000,       --要载入的最后一行,此值必须大于firstrow  
                  
                maxerrors = 10,          --在加载失败之前加载操作中最大的错误数  
                --errorfile ='c:\wc_error1.txt', --存放错误的文件  
                  
                rows_per_batch = 10000                    --每个批处理导入的行数  
          ) as t   
  
/*  
aa  bb  cc  dd  ee  ff  
42222222223432432432    32432432432432432432    2332432432  32432432432 32432432    23432432 
42222222223432432432    32432432432432432432    2332432432  32432432432 32432432    23432432 
42222222223432432432    32432432432432432432    2332432432  32432432432 32432432    23432432 
42222222223432432432    32432432432432432432    2332432432  32432432432 32432432    23432432 
*/  
  
--最后可以 insert into 表 (列)  select * from openrowset...插入数据即可  
insert into xxdd (aa,bb,cc,dd,ee,ff)  
select *  
from   
openrowset(bulk 'c:\wc.csv',             --要读取的文件路径和名称   
                formatfile='c:\wc.fmt',  --格式化文件的路径和名称  
                  
                firstrow = 2,            --要载入的第一行,由于第一行是标题,所以从2开始  
                --lastrow  = 1000,       --要载入的最后一行,此值必须大于firstrow  
                  
                maxerrors = 10,          --在加载失败之前加载操作中最大的错误数  
                --errorfile ='c:\wc_error1.txt', --存放错误的文件  
                  
                rows_per_batch = 10000                    --每个批处理导入的行数  
          ) as t   
  
  
select *  
from xxdd