解决方案 »

  1.   

    所有的if条件都打上print,你就知道为什么了
      

  2.   

    所有if都打print,就知道到底哪一个条件该满足的没满足,程序没出错说明正常执行,唯一错的就是逻辑,靠日志把错误的地方找出来
      

  3.   

    sql2008开始支持merge,是不是直接就merge可以了
      

  4.   

    据测试由于delete操作,造成自增列断号,下面语句中@count和tmp表的rowindex对应不上。所以某些phone查不出来,插入为空
    set @count=(SELECT TOP 1 rowcnt FROM sys.sysindexes WHERE id=OBJECT_ID('HouseTemp') ORDER BY rowcnt DESC )
         
      --select Row_Number() over(order by Phone) RowIndex,* INTO Tmp
      --from HouseTemp
         
      --CREATE INDEX IX_Tmp ON tmp(RowIndex)
         
      while(@count>0)
      begin
         set @flag=0;
         --这里去更新House表中对应号码的数据。
            
         select @Phone=Phone,@HouseType=isnull(HouseType,''),@DataType=DataType,@ProjectName=isnull(ProjectName,''),
                @Area=isnull(Area,'') FROM HouseTemp as tmp
         where tmp.RowIndex=@count