declare @maxi int, @curri int select @curri = 0, @maxi = max(id) from #zips while (@curri < @maxi ) update #zips set @curri = id, nearest = acos((sin(radians(lat1)) * sin(radians(lat2))) + (cos(radians(lat1)) * cos(radians(lat2)) * cos(radians(long1)-radians(long2)))) * 69 * ( 180 / PI()) where id <= @curri + 10000