我执行以下sql语句,向表内插入记录:
insert into nsrxxb1  select * from   openrowset('microsoft.jet.oledb.4.0','excel 5.0;hdr=yes;database=e:\123.xls',sheet1$) 总是提示:服务器: 消息 213,级别 16,状态 4,行 3
插入错误: 列名或所提供值的数目与表定义不匹配。可能是什么原因呀?
另外我用企业管理器直接向表内导入数据可以到进去,表的结构应该没问题吧?

解决方案 »

  1.   

    SQLSERVER表nsrxxb1与EXECL表sheet1$的列数不相同.可以这样试试:
    insert into nsrxxb1(列1,列2,列3...)  select 列1,列2,列3... from   openrowset('microsoft.jet.oledb.4.0','excel 5.0;hdr=yes;database=e:\123.xls',sheet1$) 
      

  2.   

    把excel sheet1 第一行设为冻结窗口试试(第一行填上列名)
      

  3.   

    insert into nsrxxb1(列1,列2,列3...)  select 列1,列2,列3... from   openrowset('microsoft.jet.oledb.4.0','excel 5.0;hdr=yes;database=e:\123.xls',sheet1$) 
    这样应该就成了
    我原来也在Excel导入数据库时遇到此问题
    用上面方法成功