Недавно я унаследовал базу данных, на которой одна из таблиц имеет первичный ключ, состоящий из закодированных значений (Part1 * 1000 + Part2).
Я нормализовал этот столбец, но я не могу изменить старые значения.
Итак, теперь у меня
select ID from table order by ID
ID
100001
100002
101001
...
Я хочу найти "дыры" в таблице (точнее, первое "отверстие" после 100000) для новых строк.
Я использую следующий выбор, но есть ли лучший способ сделать это?
select /* top 1 */ ID+1 as newID from table
where ID > 100000 and
ID + 1 not in (select ID from table)
order by ID
newID
100003
101029
...
База данных - это Microsoft SQL Server 2000. Я в порядке с использованием расширений SQL.