declare @FID int,
        @j   int
select @j=max(FID) from Smp_EngMaterial
if isnull(@j,0)=0 select @j=10000
while exists((select 1 from Smp_EngMaterial where FID=@j) or (select 1 from Smp_EngineBill where FInterID=@j))
begin
  set @j=@j-1
end
set @FID=@j

解决方案 »

  1.   

    declare @FID int, 
            @j  int 
    select @j=max(FID) from Smp_EngMaterial 
    if isnull(@j,0)=0 select @j=10000 
    while exists((select 1 from Smp_EngMaterial where FID=@j)) or exists(select 1 from Smp_EngineBill where FInterID=@j)
    begin 
      set @j=@j-1 
    end 
    set @FID=@j
      

  2.   

    while exists((select 1 from Smp_EngMaterial where FID=@j) or (select 1 from Smp_EngineBill where FInterID=@j)) 
    这句不应该这样用吧
      

  3.   

    while ( exists (select 1 from Smp_EngMaterial where FID=@j) or exists (select 1 from Smp_EngineBill where FInterID=@j) ) 
      

  4.   

    while exists(
                 select 1 from Smp_EngMaterial where FID=@j
                 union
                 select 1 from Smp_EngineBill where FInterID=@j
               )