merge into pm_vendor_item_relation_def_t a using (select company_code,  vendor_code,item_code,item_name,vendor_name from srm_vendor_credit) b  
  on (a.company_code = b.company_code 
  and a.vendor_code = b.vendor_code 
  and a.item_code = b.item_code)
  when matched then 
  update set a.vendor_name = b.vendor_name,a.item_name=b.item_name;
  when not matched then 
  insert--(a.company_code, a.vendor_code,a.item_code,a.item_name,a.vendor_name) 
  values(b.company_code, b.vendor_code,b.item_code,b.item_name,b.vendor_name);   该语句一直提示‘缺少关键字’
不止如何是好
求助
其中,pm_vendor_item_relation_def_t和srm_vendor_credit表的键值均为company_code, vendor_code,item_code。

解决方案 »

  1.   

    看不出什么问题啊merge into pm_vendor_item_relation_def_t a using (select company_code, vendor_code,item_code,item_name,vendor_name from srm_vendor_credit) b  
      on (a.company_code = b.company_code 
      and a.vendor_code = b.vendor_code 
      and a.item_code = b.item_code)
      when matched then 
      update set a.vendor_name = b.vendor_name,a.item_name=b.item_name;
      when not matched then 
      insert  values(b.company_code, b.vendor_code,b.item_code,b.item_name,b.vendor_name);  
      

  2.   

    多了个分号
    merge into pm_vendor_item_relation_def_t a using (select company_code, vendor_code,item_code,item_name,vendor_name from srm_vendor_credit) b  
      on (a.company_code = b.company_code 
      and a.vendor_code = b.vendor_code 
      and a.item_code = b.item_code)
      when matched then 
      update set a.vendor_name = b.vendor_name,a.item_name=b.item_name 
      when not matched then 
      insert  values(b.company_code, b.vendor_code,b.item_code,b.item_name,b.vendor_name);  
      

  3.   

      UPDATE SET A.VENDOR_NAME = B.VENDOR_NAME, A.ITEM_NAME = B.ITEM_NAME;后面多了个分号,merge into 是一个整体,不要中间出分号。
      

  4.   

    对,多了个逗号,改为and 吧