Если все, что вы используете для этого, это вернуть число для идентификации сеанса, я бы предложил отказаться от всей идеи таблицы и позволить SQL Серверу сделать всю работу за вас.
Вы можете создать объект SEQUENCE
, который будет циклически повторять и возвращать следующее значение для вас, без необходимости писать какой-либо код или поддерживать какие-либо таблицы.
CREATE SEQUENCE dbo.Extension
AS integer
START WITH 5
INCREMENT BY 5
MINVALUE 5
MAXVALUE 50
CYCLE;
Это вернет номер 5 при первом вызове, до номера 50 на номер 10, а затем начнется снова. Вы можете настроить числа в коде так, чтобы более или менее делать то, что вы хотите, однако.
Получите следующее значение следующим образом:
SELECT NEXT VALUE FOR dbo.Extension;
И когда / если вам нужно расширить диапазон:
ALTER SEQUENCE dbo.Extension
MAXVALUE 100;
Поэкспериментируйте с идеей демонстрация Rextester .
Редактировать : в свете комментариев выше и ниже Я бы все-таки придерживался SEQUENCE
, я думаю.
Каждый раз, когда ваш код вызывает таблицу для расширения, используйте запрос в следующем формате:
SELECT
Extension
FROM
ExtTable
WHERE
SortOrder = NEXT VALUE FOR dbo.Extension;
Функционально это должно делать то, что вам нужно, опять же, без кода для написания или поддержки.