Можете ли вы указать, зачем вам это нужно? Похоже, что может быть лучший способ удовлетворить общую потребность.
Однако, если все, что вам нужно, это следующий номер в последовательности, то это должно работать:
SELECT MAX(ID) + 1 FROM Table
Редактировать: Я только что заметил из ответа Томаса (и повторной проверки вопроса), что похоже, что вы ищете первый пробел, который может быть или не быть следующим числом. Но я думаю, что общий смысл все еще остается ... почему?
Редактировать: Я рад, что вы приняли ответ, но я все еще думаю, что это еще не все. Например, если вы хотите просто «зарезервировать» идентификатор, есть несколько способов сделать это.
GUID хороши для идентификаторов, сгенерированных приложением, но не должны использоваться в качестве первичных ключей из соображений производительности. Вы можете иметь второй столбец в качестве GUID и использовать его в своем приложении, позволяя простой столбец с автоинкрементом быть первичным ключом. Есть и другие соображения относительно производительности, и вам следует изучить их.
И наоборот, существует алгоритм под названием Hi / Lo для резервирования диапазонов идентификаторов базы данных. Он использует целые числа, которые отлично подходят для индексации и делают отличные первичные ключи. Он оставляет пропуски в последовательности, но в любом случае этого следует ожидать даже с обычным автоматически генерируемым столбцом (например, при удалении записи).
Если существует требование, чтобы в идентификаторах не было пробелов, это звучит как странное требование бизнеса и должно быть проанализировано на предмет его истинных потребностей. Нечто подобное не должно перетекать в первичный ключ вашей персистентности данных.