Как найти наименьшее неиспользуемое число в столбце SQL Server?
Я собираюсь импортировать большое количество записей, записанных вручную, из Excel в таблицу SQL Server. Все они имеют числовой идентификатор (называемый номером документа), но они не были назначены последовательно по причинам, которые больше не применяются, то есть с этого момента, когда мой веб-сайт записывает новую запись, ему необходимо присвоить ему наименьший возможный номер документа больше нуля), который еще не был взят.
Есть ли способ сделать это с помощью простого SQL или это проблема для TSQL / кода?
Спасибо!
EDIT
Особая благодарность WW за поднятие проблемы параллелизма. Учитывая, что это веб-приложение, оно по определению является многопоточным, и всем, кто сталкивается с этой же проблемой, следует рассмотреть возможность блокировки на уровне кода или БД для предотвращения конфликта.
* LINQ 1018 *
FYI - это может быть выполнено через LINQ со следующим кодом:
var nums = new [] { 1,2,3,4,6,7,9,10};
int nextNewNum = (
from n in nums
where !nums.Select(nu => nu).Contains(n + 1)
orderby n
select n + 1
).First();
nextNewNum == 5