日期:2014-05-17  浏览次数:20597 次

关于使用(bulk insert )导入考勤数据问题
各位朋友,请帮忙看看,应该怎样处理,将考勤数据导入到SQL的SQL语句写法!
下图是SQL库的表结构


下图是要导入到SQL的原始数据,是考勤机导出到U盘的!


我使用(bulk insert)导入,一直不成功!
请朋友们帮忙看看!原始文件可以,使用记事本打开!

bulk insert 人力资源_考勤采集
from 'H:\1_attlog.dat'
with 
  (
    FIELDTERMINATOR = 'cr',
    ROWTERMINATOR = '\n'
  )

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

你的字段间隔符号是空格?

是的,是空格分隔的!请问该如何处理?文件是考勤机生成的!


哦,那就按照这个流程来处理:



--1.先把格式文件导出来:c:\wc.fmt
exec xp_cmdshell 'bcp 你的数据库.dbo.你的表 format nul -t " " -f c:\wc.fmt -c -Usa -P用户名 -S 服务器ip,端口'  
go


--2.查询一下数据
select *  
from   
openrowset(bulk 'H:\1_attlog.dat',             --要读取的文件路径和名称   
                formatfile='c:\wc.fmt',  --格式化文件的路径和名称  
                  
                firstrow = 1,            --要载入的第一行,由于第一行是标题,所以从2开始  
                --lastrow  = 1000,       --要载入的最后一行,此值必须大于firstrow  
                  
                maxerrors = 10,          --在加载失败之前加载操作中最大的错误数  
                --errorfile ='c:\wc_error1.txt', --存放错误的文件  
                  
                rows_per_batch = 10000                  &nbs