Уважаемые слушатели! Обращаем ваше внимание, что 01.05.2024 и 09.05.2024 у нас выходные дни. Вы можете оставить сообщение в чате, мы обязательно ответим!

Как получить второй автоинкремент в таблице для SQL Server'а

Самородов Федор Анатольевич: Как получить второй автоинкремент в таблице для SQL Server'а

СФА

В таблице может быть только один автоинкремент. Это логично. Зачем может понадобиться второй? Второй будет полезен для реализации произвольного (задаваемого пользователем) порядка сортировки объектов. Добавим столбец с целочисленными значениями и позволим пользователю их менять, чтобы получить желаемый порядок сортировки. Вы много раз встречали такой приём в интерфейсе при оснащении списка кнопками "вверх" и "вниз". Вот так:

Как заполнять это дополнительное поле с приоритетом? Хотелось бы установить на этот столбец автоинкремент (identity), но этот параметр во-первых скорее всего уже занят первичным ключом (второй автоинкремент в таблице не допускается), а во-вторых автоинкремент не позволяет изменять сгенерированные значения.

Решение - использование функции Ident_Current в качестве значения по-умолчанию. Параметр функции - название таблицы.

IDENT_CURRENT

Теперь это поле будет автоматически заполняться значениями, сгенерированными для идентификатора:

То есть, новая запись будет получать наибольшее значение:

А в дальнейшем пользователь может менять приоритеты для установления желаемого порядка сортировки:

Все, механизмом можно пользоваться:

Если вы используете SQL Server версии 2012 или выше, учтите, что есть более элегантное решение этой задачи, о котором вы можете узнать на наших курсах...

Ближайшие группы

Авторизации

Обратный звонок

Оставьте свои данные ниже и наш менеджер свяжется с вами в рабочее время!

Нажимая на кнопку, вы соглашаетесь с политикой конфиденциальности

Спасибо за обращение! Ваш менеджер свяжется с вами в рабочее время.