Некоторые серийные номера продуктов относятся к типу varchar и имеют букву, обозначающую тип, за которым следует число.Числа от 0 дополняются до 5 цифр, и мы приближаемся к «A100000».
Для букв, которые содержат менее 100000 элементов, они по-прежнему хотят 0, дополняющих до 5 цифр, и букв, которые имеют более 100000чтобы иметь больше цифр вплоть до любого номера.
В настоящее время текущий максимальный серийный номер находит примерно так:
SELECT MAX(SerialNumber) FROM Table WHERE LEFT(SerialNumber, 1) = @leadingChar
Однако при использовании этого метода выбирается «A99999».A100000 ', потому что 9> 1.(По той же причине, что Zoo следует за Apple в словаре, больше символов, но меньше значения в начальном символе.)
Таким образом, проблема заключается в том, когда он увеличивает текущий максимальный серийный номер для получения следующего серийного номера после 'A99999'каждый раз, когда вы получаете новый серийный номер, вы получаете «A100000».
Разделять их на столбцы типа char и столбец int в базе данных будет громоздко, поскольку он используется в нескольких таблицах, а их несколько миллионов.Всего серийных номеров.
Он написан как веб-приложение в базе данных vbscript / classic asp SQL Server 7.
Если есть лучшие теги / заголовки, не стесняйтесь редактировать / дайте мне знать.
Спасибо за любую помощь.