insert into WAGE(workerId,moneyOfDay,workTimes,reduce,total,productDay,re,isPayed) 
values (83,2100,1,0,2100,2010/6/11,'000000',0) 
where not exists(select 1 from WAGE where workerId=83 and 
CONVERT(varchar(7),productDay,111)=CONVERT(varchar(7),'2010/6/11',111))这句话错在哪里了?
谢谢!

解决方案 »

  1.   

    insert into WAGE(workerId,moneyOfDay,workTimes,reduce,total,productDay,re,isPayed)  
    values (83,2100,1,0,2100,2010/6/11,'000000',0)  已经足够了阿?where not exists(select 1 from WAGE where workerId=83 and  
    CONVERT(varchar(7),productDay,111)=CONVERT(varchar(7),'2010/6/11',111))
    如果是条件的话IF not exists(select 1 from WAGE where workerId=83 and  
    CONVERT(varchar(7),productDay,111)=CONVERT(varchar(7),'2010/6/11',111))
    begin
    insert into WAGE(workerId,moneyOfDay,workTimes,reduce,total,productDay,re,isPayed)  
    values (83,2100,1,0,2100,2010/6/11,'000000',0)  
    end
      

  2.   

    insert into WAGE(workerId,moneyOfDay,workTimes,reduce,total,productDay,re,isPayed)  
    values (83,2100,1,0,2100,2010/6/11,'000000',0)  
    where not exists(select 1 from WAGE where workerId=83 and  
    CONVERT(varchar(7),productDay,111)=CONVERT(varchar(7),'2010/6/11',111))WHERE 条件应该加在 FROM TABLENAME 后面
    你这是直接插入语句不需要加条件
      

  3.   

    INSERT INTO WAGE( workerId, moneyOfDay, workTimes, reduce, total, productDay, re, isPayed )
    SELECT 83, 2100, 1, 0, 2100, 2010/6/11, '000000', 0
    WHERE NOT EXISTS(
              SELECT 1 
              FROM WAGE
              WHERE workerId = 83
               AND CONVERT(VARCHAR(7), productDay, 111) = CONVERT(VARCHAR(7), '2010/6/11', 111)
    )按照你的意思,可改为这样。
      

  4.   

    应该是insert into wage select ...from ... where.