Как сопоставить ID и выявить не достающие
1. Найти максимальный номер ID (пусть будет maxID)
2. Сгенерировать временную таблицу с одним автоинкрементмым полем.
3. Добавить в нее maxID записей
4. Сделать запрос на выборку из временной таблицы тех записей которых нет в основной.
2-й вопрос - Какая СУБД. Господа, читайте же, наконец, правила форума!
1. Найти максимальный номер ID (пусть будет maxID)
2. Сгенерировать временную таблицу с одним автоинкрементмым полем.
3. Добавить в нее maxID записей
4. Сделать запрос на выборку из временной таблицы тех записей которых нет в основной.
Гениально :D
Выгружаем на клиента все IDшники упорядоченные по возрастанию. На клиенте тупо проходим по ним в одом цикле и находим промежутки недостающих ID.
Выгружаем на клиента все IDшники упорядоченные по возрастанию. На клиенте тупо проходим по ним в одом цикле и находим промежутки недостающих ID.
а если записей несколько мульенов будет? гонять туда-сюда все эти данные?
Алгоритм от Aristarh Dark более оптимальный, тем более что будет производится в одном месте - на сервере.
Аналогично через курсор.
2-й вопрос - Какая СУБД. Господа, читайте же, наконец, правила форума!
СУБД SQL 2005 А нужно это для того что бы узнать какие диапазоны чисел ещё не заняты.
П.С. Спасибо за помощь!!!
Выгружаем на клиента все IDшники упорядоченные по возрастанию. На клиенте тупо проходим по ним в одом цикле и находим промежутки недостающих ID.
Можно об этом поподробнее? Желательно с примером или ссылками на эту тему. Нет опыта написания циклов (((
А зачем?
Показать на T-SQL эту малость просто. Я покачто не вижу надобности вам ее реализовывать.
Я не исключаю что мой вопрос не может дать сообществу какой либо опыт и для большинства его решение кажеться очевидным (я в их число безусловно не вхожу). В конце концов достигнув определенного уровня знаний и я смогу быть кому то полезен. И уж точно вопрос не стоит рассматривать как требование поделиться со мной знаниями. Я ожидаю помощи только от тех людей, у которых есть желание её оказать.
Я лично глубоко сомневаюсь, что такие как ты какого нибудь уровня достигают. Потому что мало того что туп, не найти ответа в сети на столь простой и популярный вопрос - надо обладать фантастической тупостью - так еще и обидчив. Потому что все к чему привыкли такие как ты - это только потреблять, потреблять и потреблять.
insert into #tmp (b)
select top 10000 o1.number from master..spt_values o1, master..spt_values o2
where o1.type = 'P' and o2.type = 'P'
select * from #tmp where a not in (select clientid from clientmain)
drop table #tmp
в 2005 появились дополнительные возможности - название я указал - юзай поиск.