excel有一列是编档号:例如 20040101.可是在这列里有加入了字母,例如:20070101a5,20070801E6....,导入到sqlserver的时候,只要是有字母的都变成了NULL.
导入完成了,这一列变成了float型的.我重新导入,把float 变成nvchar,可是带字母的还是不能导入.急呀,请高人指点!!在线等!!!!!!!!!

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/5086/5086676.xml?temp=.4488947
      

  2.   

    http://community.csdn.net/Expert/topic/5321/5321363.xml?temp=.9015314 gc_ding(施主,给个妞泡好么) ( ) 信誉:100    Blog  2007-1-26 17:34:13  得分: 15  
     
     
       
    --加选项IMEX=1就不会丢失数据了
    insert tablename(c1, c2,c3)
    select a,b,c
    from openrowset('Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;User id=admin;Password=;IMEX=1;
    DATABASE=C:\temp.xls', temp$)  
     
      

  3.   

    gc_ding(施主,给个妞泡好么) ( ) 信誉:100    Blog  2007-1-26 17:34:35  得分: 15  
     
     
       
    Excel 驱动程序读取指定源中一定数量的行(默认情况下为 8 行)以推测每列的数据类型。如果推测出列可能包含混合数据类型(尤其是混合了文本数据的数值数据时),驱动程序将决定采用占多数的数据类型,并对包含其他类型数据的单元返回空值。(如果各种数据类型的数量相当,则采用数值类型。)Excel 工作表中大部分单元格格式设置选项不会影响此数据类型判断。可以通过指定导入模式来修改 Excel 驱动程序的此行为。若要指定导入模式,请在“属性”窗口中将 IMEX=1 添加到 Excel 连接管理器的连接字符串内的扩展属性值中。  
     
      

  4.   

    怎么报错呢?楼上的大哥!!将数据类型 nvarchar 转换为 float 时出错。这是怎么回事
      

  5.   

    insert linqi
    select *
    from openrowset('Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=1;
    DATABASE=d:\1.xls', [Sheet1$])
      

  6.   

    linqi表中對應“编档号”的字段是什麼類型?float?
      

  7.   

    用这条不报错,可是导入的数据还是为空!!!
    SELECT * INTO linqi 
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
                    'Excel 8.0;HDR=YES;IMEX=1;Database=d:\1.xls', 
                    'SELECT * FROM [Sheet1$]')
      

  8.   

    我建了一個excel表格,裡面有兩列數據為ID Name
    1 1321
    2 123a
    3 1256b用
    SELECT * INTO linqi 
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
                    'Excel 8.0;HDR=YES;Database=d:\1.xls', 
                    'SELECT * FROM [Sheet1$]')
    導入會有Null的數據,但是用
    SELECT * INTO linqi 
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
                    'Excel 8.0;HDR=YES;IMEX=1;Database=d:\1.xls', 
                    'SELECT * FROM [Sheet1$]')
    這個就沒有問題
      

  9.   

    楼上的大哥,你把第二行2123a换成全是数字的试试,我试了,换成数字就是null了!!
    我google了一下,第一行是数字,第二行是字母,再配合IMEX=1才能确保数据不为空!!好笑!!你试试看!!!
      

  10.   

    ftjn689(哈哈)人家说得对,怎么到你哪里就出问题了呢