不用的 eg:
Update Contract Set (ContractNo,
ContractName,SignOther,CONTRACTSUM,ONEFEE,MONTHFEE)=(select ContractNo,ContractNameFrom,SignOther,CONTRACTSUM ,ONEFEE,MONTHFEE from Contract_Temp 
Where Contract.ContractID=Contract_Temp.ContractID)

解决方案 »

  1.   

    Update Contract a
       Set(ContractNo,ContractName,SignOther,CONTRACTSUM,ONEFEE,MONTHFEE)
         =(SELECT ContractNo,ContractName,SignOther,CONTRACTSUM,ONEFEE,MONTHFEE
             From Contract_Temp b
            Where a.ContractID=b.ContractID)
    需要时加
    Update Contract a
       Set(ContractNo,ContractName,SignOther,CONTRACTSUM,ONEFEE,MONTHFEE)
         =(SELECT ContractNo,ContractName,SignOther,CONTRACTSUM,ONEFEE,MONTHFEE
             From Contract_Temp b
            Where a.ContractID=b.ContractID)
     where exists ( select 1 from Contract_Temp c
                     where a.ContractID=c.ContractID)
      

  2.   

    Update Contract Set (ContractNo,
    ContractName,SignOther,CONTRACTSUM,ONEFEE,MONTHFEE)=(select ContractNo,ContractNameFrom,SignOther,CONTRACTSUM ,ONEFEE,MONTHFEE from Contract_Temp 
    Where Contract.ContractID=Contract_Temp.ContractID)
    这样不对,我Contract表有1000条纪录,Contract_Temp有5条纪录,
    这样运行的结果是把1000条都更新了
      

  3.   

    请采用如下形式:
    Update Contract a
       Set(ContractNo,ContractName,SignOther,CONTRACTSUM,ONEFEE,MONTHFEE)
         =(SELECT ContractNo,ContractName,SignOther,CONTRACTSUM,ONEFEE,MONTHFEE
             From Contract_Temp b
            Where a.ContractID=b.ContractID)
     where exists ( select 1 from Contract_Temp c
                     where a.ContractID=c.ContractID)