insert into mmst214(supl_no,mtr_no,price_date,mtr_prs,money_no,location,mini_amt,leadtime,sin_wei,upd_name,upd_date,lalu) 
select supl_no,mtr_no,price_date,mtr_prs,money_no,location,mini_amt,leadtime,sin_wei,upd_name,upd_date,lalu 
from openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=E:\\2.xls;HDR=YES', 'SELECT * FROM [Sheet1$]')
提示不能将null插入列mtr_no.表mmst214. 列不允许空值  insert失败
是什么原因啊 
excel中没有空值啊 

解决方案 »

  1.   

    --先执行
    select supl_no,mtr_no,price_date,mtr_prs,money_no,location,mini_amt,leadtime,sin_wei,upd_name,upd_date,lalu  
    from openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=E:\\2.xls;HDR=YES', 'SELECT * FROM [Sheet1$]') where mtr_no is null or mtr_no=''--看看有没有记录
      

  2.   

    excel的mtr_no列是否有空值或者单元格格式是否正确
      

  3.   

    多半是EXCEL单元格的值与转换值数据类型不一致转换为NULL了.
      

  4.   

    按你的查询 数据库显示有一条记录的mtr_no 是null,就是第一条 但是我excel表格里是有数据的 
    我excel表格数据是从第二行开始的,第一行是表头嘛 就是supl_no,mtr_no,price_date....这些。
      

  5.   

    不可能吧!,那你去掉where mtr_no is null or mtr_no='',难道记录中有supl_no,mtr_no,price_date....这些?
      

  6.   

    没有啊 我是说excel里的第一行是supl_no,mtr_no,price_date....这些
    其他行都是数据 而且都有数据 没有null 的
    我又看了下去掉where mtr_no is null or mtr_no='',记录中的数据比excel中的数据多出来几十行,其中有一行mtr_no是null   为什么查询出的数据会多出来呢 我excel中没有那些的 我也没隐藏什么的
      

  7.   

    你删除一下excl和导入内容相邻的的空白行和空白列,再重新导入试试