dbf格式文件不能用 bulk insert
而是要用openrowset

解决方案 »

  1.   

    --看你的dbf文件是那一种,选择合适的写法:
    --/* dBase IV文件
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'dBase IV;DATABASE=C:\' --c:\是目录
    ,'select * from [客户资料4.dbf]') --客户资料4.dbf是文件名
    --*/--/* dBase III文件
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'dBase III;DATABASE=C:\'
    ,'select * from [客户资料3.dbf]')
    --*/--/* FoxPro 数据库
    select * from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\', --c:\是目录
    'select * from [aa.DBF]') --aa.dbf是文件名/*--说明:SourceDB=c:\    c:\是dbf文件的存放目录
    [aa.DBF]        是dbf文件名
    --*/
      

  2.   

    Sorry,我想我可能没有说清楚,是VFP的dbf,而且已经把table提取成为一个txt文件存放在c:\中,怎么样把这个txt的数据用bulk insert写上sql的一个[DBase].[dbo].[table]中,格式文件FTM应该怎么写?
      

  3.   

    将下面的复制到词本中,存储为c:\bcp.fmt8.0
    3
    1       SQLCHAR       0       50      ""                        1     Name_F     Chinese_PRC_CI_AS
    2       SQLDECIMAL    1       19      ""                        2     Sl_f       ""
    3       SQLDATETIME   1       8       ""                        3     Rq_f       ""
      

  4.   

    复制的内容是从8.0开始.导入的语句就可以这样写:
    BULK INSERT [DBase].[dbo].[table] FROM 'c:\aa.txt'
    WITH (
    FORMATFILE = 'c:\bcp.fmt'
    )